用组合框触发ActionEvent事件做一个能选择系统里的字体的窗口,根据选择的字体,提前输入的文字的字体也跟着变化,是边布局放在北面
时间: 2024-02-25 14:55:32 浏览: 17
下面是一个能选择系统里的字体的窗口的示例代码:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class FontChooserFrame extends JFrame implements ActionListener {
private JComboBox<String> fontComboBox;
private JTextField textField;
public FontChooserFrame() {
setTitle("Font Chooser");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建组合框
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
String[] fontNames = ge.getAvailableFontFamilyNames();
fontComboBox = new JComboBox<>(fontNames);
fontComboBox.addActionListener(this);
// 创建文本框
textField = new JTextField("Hello, World!");
textField.setFont(new Font((String) fontComboBox.getSelectedItem(), Font.PLAIN, 20));
// 添加组件
getContentPane().add(fontComboBox, BorderLayout.NORTH);
getContentPane().add(textField, BorderLayout.CENTER);
pack();
setLocationRelativeTo(null);
}
@Override
public void actionPerformed(ActionEvent e) {
// 获取选择的字体
String fontName = (String) fontComboBox.getSelectedItem();
// 更新文本框的字体
textField.setFont(new Font(fontName, Font.PLAIN, 20));
}
public static void main(String[] args) {
FontChooserFrame frame = new FontChooserFrame();
frame.setVisible(true);
}
}
```
在这个示例代码中,我们创建了一个组合框`fontComboBox`,并添加了所有系统中可用的字体。当用户选择了一个新的字体时,我们在`actionPerformed`方法中获取选择的字体名称,然后根据该名称创建一个新的字体,并将其应用到文本框`textField`中。
最后,我们将组合框和文本框添加到窗口中,并使用边界布局将组合框放在北面,将文本框放在中间。
当你运行这个程序时,你会看到一个窗口,其中包含一个组合框和一个文本框。你可以选择不同的字体,然后看到文本框中的字体跟着变化。