Java图形界面使用JDialog,参照Windows记事本编写一个“字体”对话框。
时间: 2024-05-09 19:18:23 浏览: 65
好的,我明白你的问题。首先,你需要创建一个 JDialog 对象来显示 "字体" 对话框。在 "字体" 对话框中,你需要提供以下选项:
1. 字体名称:用于选择所需的字体。
2. 字体样式:用于选择“普通”、“斜体”、“加粗”和“斜体加粗”等样式。
3. 字体大小:用于选择字体的大小。
要创建这个对话框,你可以按照以下步骤进行操作:
1.创建一个 JDialog 对象。
2.向对话框添加三个标签和三个下拉列表框,分别对应字体名称、字体样式和字体大小。
3.使用 Font 类的构造函数创建所选字体的实例。
4.将所选的字体应用到所需的组件。
5.在对话框中添加确定和取消按钮。
以下是一个参考代码,你可以在其中添加自己的代码:
```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FontDialog extends JDialog implements ActionListener {
private JComboBox<String> fontCombo, styleCombo, sizeCombo;
private JLabel fontLabel, styleLabel, sizeLabel;
private JButton okButton, cancelButton;
private Font selectedFont;
public FontDialog(JFrame parent) {
super(parent, "字体", true);
setLayout(new GridLayout(4, 2));
//字体标签和下拉列表框
fontCombo = new JComboBox<>(GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames());
fontLabel = new JLabel("字体:", JLabel.RIGHT);
//样式标签和下拉列表框
String[] styles = {"普通", "斜体", "加粗", "斜体加粗"};
styleCombo = new JComboBox<>(styles);
styleLabel = new JLabel("样式:", JLabel.RIGHT);
//大小标签和下拉列表框
String[] sizes = {"8", "9", "10", "11", "12", "14", "16", "18", "20", "24", "28", "32", "36", "40", "48", "56", "64", "72"};
sizeCombo = new JComboBox<>(sizes);
sizeLabel = new JLabel("大小:", JLabel.RIGHT);
//添加组件
add(fontLabel);
add(fontCombo);
add(styleLabel);
add(styleCombo);
add(sizeLabel);
add(sizeCombo);
//确定和取消按钮
okButton = new JButton("确定");
cancelButton = new JButton("取消");
okButton.addActionListener(this);
cancelButton.addActionListener(this);
add(okButton);
add(cancelButton);
//设置对话框大小和位置
setSize(300, 150);
setLocationRelativeTo(parent);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == okButton) {
String name = (String) fontCombo.getSelectedItem();
int style = styleCombo.getSelectedIndex();
int size = Integer.parseInt((String) sizeCombo.getSelectedItem());
selectedFont = new Font(name, style, size);
}
setVisible(false);
}
public Font getSelectedFont() {
return selectedFont;
}
}
```
在主函数中,你可以创建一个 FontDialog 对象,并调用它的 setVisible() 方法来显示对话框。当用户单击 "确定" 按钮时,你可以通过调用 FontDialog 对象的 getSelectedFont() 方法来获得用户选择的字体。接下来,你可以将用户选择的字体应用到所需的组件。
阅读全文