窗口使用边布局,将系统字体加入JComboBox组件,并将该组件加入窗口的北面。将显示文字的组件加入窗口的中部。选择不同的字体,中部的文字的字体随之而改变。
时间: 2024-02-11 15:03:38 浏览: 48
好的,你可以使用以下代码来实现:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyFrame extends JFrame implements ActionListener {
private JComboBox<String> fontComboBox;
private JLabel label;
public MyFrame() {
// 设置窗口标题
setTitle("My Window");
// 创建组件
fontComboBox = new JComboBox<>(GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames());
fontComboBox.addActionListener(this);
label = new JLabel("Hello World!");
label.setHorizontalAlignment(SwingConstants.CENTER);
// 将组件添加到窗口中
add(fontComboBox, BorderLayout.NORTH);
add(label, BorderLayout.CENTER);
// 设置窗口大小和位置,并显示窗口
setSize(400, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// 获取选择的字体
String fontName = (String) fontComboBox.getSelectedItem();
// 设置标签的字体
label.setFont(new Font(fontName, Font.PLAIN, 20));
}
public static void main(String[] args) {
new MyFrame();
}
}
```
在上面的代码中,我们使用了边布局(`BorderLayout`),将 `JComboBox` 组件添加到了窗口的北面,将显示文字的 `JLabel` 组件添加到了窗口的中部。我们还为 `JComboBox` 组件添加了一个事件监听器(`ActionListener`),当用户选择不同的字体时,会触发该事件,我们就可以通过 `getSelectedItem` 方法获取选择的字体名称,然后使用 `setFont` 方法设置标签的字体。
阅读全文