JTextPane: Cómo establecer el tamaño de fuente
Por favor, eche un vistazo al siguiente código
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.util.ArrayList;
import java.util.Scanner;
import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.text.BadLocationException;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
public class Form extends JFrame
{
private JTextPane textPane;
private JLabel results;
private JPanel center,south;
private FlowLayout flow;
private ArrayList array;
private Color color;
private StyledDocument doc;
private Style style, fontSize;
public Form()
{
textPane = new JTextPane();
textPane.setMinimumSize(new Dimension(100,100));
doc = textPane.getStyledDocument();
doc.addDocumentListener(new TextActions());
results = new JLabel("Number of letters: ");
array = new ArrayList();
array.add("public");
array.add("static");
array.add("void");
array.add("private");
array.add("protected");
color = new Color(185,224,247);
//Adding styles
style = doc.addStyle("blue", null);
StyleConstants.setForeground(style, color);
fontSize = doc.addStyle("fontSize", null);
StyleConstants.setFontSize(fontSize, 25);
//Setting the font Size
doc.setCharacterAttributes(0, doc.getLength(), fontSize, false);
center = new JPanel();
flow = new FlowLayout();
center.setLayout(flow);
center.add(textPane);
south = new JPanel();
south.setLayout(new FlowLayout());
south.add(results);
getContentPane().add(textPane,"Center");
getContentPane().add(south,"South");
}
private class TextActions implements DocumentListener
{
@Override
public void insertUpdate(DocumentEvent e)
{
try {
highlighat();
} catch (BadLocationException ex) {
ex.printStackTrace();
}
}
@Override
public void removeUpdate(DocumentEvent e)
{
try {
highlighat();
} catch (BadLocationException ex) {
ex.printStackTrace();
}
}
@Override
public void changedUpdate(DocumentEvent e)
{
}
}
private void highlighat() throws BadLocationException
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
String text = "";
String content = null;
try {
content = doc.getText(0, doc.getLength()).toLowerCase();
} catch (BadLocationException ex) {
ex.printStackTrace();
}
int last=0;
for(int i=0;i<array.size();i++)
{
text = array.get(i).toString();
if(content.contains(text))
{
while((last=content.indexOf(text,last))!=-1)
{
int end = last+text.length();
doc.setCharacterAttributes(last, end, textPane.getStyle("blue"), true);
last++;
}
}
}
}
}
);
}
public static void main(String[]args)
{
try
{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e)
{
}
Form f = new Form();
f.setVisible(true);
f.setSize(800,600);
f.validate();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Allí, también estoy tratando de establecer el tamaño de fuente en 25, pero como pueden ver, no está funcionando. "textPane.setFont ()" tampoco funcionó. ¿Cómo puedo configurar el tamaño de fuente correctamente? Por favor ayuda..