📜  java swing 中的对话框 - Java (1)

📅  最后修改于: 2023-12-03 15:01:32.467000             🧑  作者: Mango

Java Swing 中的对话框

Java Swing 中的对话框是一种常见的用户界面组件,用于显示和提示用户输入或确认信息。在 Swing 中,对话框可以分为模态对话框和非模态对话框。模态对话框被设计为阻塞用户对下层窗口的任何操作,而非模态对话框可以与窗口同时进行其他操作。

创建对话框

在 Swing 中,可使用 JDialog 类来创建对话框。以下是一个简单的示例:

JDialog dialog = new JDialog();
dialog.setTitle("My Dialog");
dialog.setSize(300, 200);
dialog.setLocationRelativeTo(null);
dialog.setVisible(true);

以上代码将创建一个空的对话框,并将其大小设置为 300×200 像素。 setLocationRelativeTo(null) 将对话框的位置设置为屏幕中央,并通过 setVisible(true) 将其显示出来。

模态对话框

要将对话框设置为模态对话框,可使用 setModal(true) 方法。以下是一个示例:

JDialog dialog = new JDialog();
dialog.setTitle("My Modal Dialog");
dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL); // 设置模态类型
dialog.setSize(300, 200);
dialog.setLocationRelativeTo(null);
dialog.setVisible(true);

将模态类型设置为 Dialog.ModalityType.APPLICATION_MODAL 可将对话框设置为应用程序级别的模态对话框。

对话框中的组件

对话框中可放置许多 Swing 组件,例如文本框、标签、按钮等等。以下示例将在对话框中添加一个标签、文本框和确认按钮:

JDialog dialog = new JDialog();
dialog.setTitle("My Dialog");
dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

// 创建一个标签
JLabel label = new JLabel("Enter your name:");
label.setFont(new Font("Dialog", Font.PLAIN, 16));
label.setBounds(20, 20, 150, 30);

// 创建一个文本框
JTextField textField = new JTextField();
textField.setBounds(20, 50, 200, 30);

// 创建一个确认按钮
JButton okButton = new JButton("OK");
okButton.setBounds(100, 100, 80, 30);
okButton.addActionListener(e -> {
    System.out.println("Hello, " + textField.getText() + "!");
    dialog.dispose(); // 关闭对话框
});

//将组件添加到对话框中
dialog.add(label);
dialog.add(textField);
dialog.add(okButton);

// 设置对话框属性
dialog.setSize(250, 180);
dialog.setLocationRelativeTo(null);
dialog.setLayout(null);
dialog.setModal(true);

dialog.setVisible(true);

以上代码将创建一个带有标签、文本框和确认按钮的对话框。单击确认按钮将显示文本框中输入的名称,并关闭对话框。

总结

Java Swing 中的对话框是一种十分有用的组件,可用于提示用户确认信息、输入信息等等。Swing 中的对话框分为模态和非模态两种类型,用户可根据需求选择使用。对话框中可放置各种 Swing 组件,大大丰富了对话框的功能。