gpt4 book ai didi

java - JTextPane:如何设置字体大小

转载 作者:搜寻专家 更新时间:2023-10-31 19:34:33 24 4
gpt4 key购买 nike

请看下面的代码

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);
}
}

在那里,我还尝试将字体大小设置为 25,但如您所见,它不起作用。 “textPane.setFont()”也没有用。如何正确设置字体大小?请帮助..

最佳答案

当然,您可以创建一个字体对象并使用它来设置文本 Pane 的字体。像这样实例化它:

    Font f = new Font(Font.SANS_SERIF, 3, 5);

关于java - JTextPane:如何设置字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10585956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com