【发布时间】:2020-01-16 04:29:19
【问题描述】:
我正在用 java swing 编写一个电子邮件应用程序。我希望用户能够在写电子邮件时更改字体,但我不知道该怎么做。 我创建了一个包含所有字体的 JComboBox。
我想我应该使用getSelectedItem() 并向JComboBox 添加一个actionListener 以将此信息传递给JTextArea?还是有其他方法?
这是我的代码:
String[] fonts = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
JComboBox comboBox = new JComboBox(fonts);// create a combo box with the array
comboBox.setFont(new Font("Times New Roman", Font.PLAIN, 12));// set the font
comboBox.setBounds(21, 6, 193, 25);// set size and location
add(comboBox);
我应该如何让所有文本字段根据组合框中的选定项更改字体?
【问题讨论】:
-
“我想我应该使用 getSelectedItem() 并向 JComboBox 添加一个 actionListener 以将此信息传递给 JTextArea?” - 这将是一个很好的起点,期待,
JTextArea只支持纯文本。你必须使用JTextPane,但它变得更加复杂 -
如果您希望文本的不同部分具有不同的字体,那么您需要按照@MadProgrammer 的建议使用
JTextPane(或JEditorPane)。但是,如果您想更改 all 文本的字体(在JTextArea中),则有方法 setFont