java使用getAvailableFontFamilyNameso 方法获得系统宇体,添加到JComboBox中 可以选择某种宇体,在画布中显示文 本aJava入门与精通》,如下图所示。
时间: 2024-03-01 18:50:30 浏览: 54
Aswing 中文教程
好的,您可以按照以下步骤实现:
1. 使用 GraphicsEnvironment 类的 getAvailableFontFamilyNames() 方法获取系统中所有的字体名称,并将其存储到一个字符串数组中。
2. 将该字符串数组作为参数,创建一个 JComboBox 对象,并将其添加到您的 GUI 界面中。
3. 监听 JComboBox 的选择事件,当用户选择某种字体时,获取其字体名称,并使用 setFont() 方法设置 JTextArea 的字体。
4. 在 JTextArea 中显示您想要显示的文本。
下面是一个简单的示例代码,您可以参考一下:
```
import java.awt.*;
import javax.swing.*;
public class FontSelector extends JFrame {
private JComboBox<String> fontSelector;
private JTextArea textArea;
public FontSelector() {
// 获取系统中所有的字体名称
String[] fontNames = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
// 创建 JComboBox 对象,并添加到 GUI 界面中
fontSelector = new JComboBox<>(fontNames);
fontSelector.addItemListener(e -> {
// 监听 JComboBox 的选择事件,当用户选择某种字体时,设置 JTextArea 的字体
String fontName = fontSelector.getSelectedItem().toString();
textArea.setFont(new Font(fontName, Font.PLAIN, 14));
});
textArea = new JTextArea();
textArea.setText("Java入门与精通");
// 将 JComboBox 和 JTextArea 添加到 GUI 界面中
JPanel panel = new JPanel();
panel.add(fontSelector);
add(panel, BorderLayout.NORTH);
add(new JScrollPane(textArea), BorderLayout.CENTER);
// 设置 JFrame 的大小和可见性
setSize(400, 300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new FontSelector();
}
}
```
运行该程序后,将会显示一个包含 JComboBox 和 JTextArea 的窗口,您可以在 JComboBox 中选择某种字体,然后在 JTextArea 中查看该字体的效果。
阅读全文