如何在 Java 中创建无模态和模态 JDialog?
MODELESS 类型
以下是一个使用模态类型 MODELESS 设置 JDialog 的示例 −
示例
import java.awt.Cursor;
import java.awt.Dialog.ModalityType;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
public class SwingDemo {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(new Dimension(600, 400));
JDialog dialog = new JDialog(frame, "New",ModalityType.MODELESS);
dialog.setSize(300, 300);
frame.add(new JButton(new AbstractAction("Click to generate") {
@Override
public void actionPerformed(ActionEvent e) {
frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
dialog.setVisible(true);
}
}));
frame.setVisible(true);
}
}输出

现在,点击它以生成一个新的 Dailog。由于它是 Modeless,因此你可以随时关闭两个对话框 −

模态对话框
以下是一个模态对话框的示例 −
示例
import java.awt.Cursor;
import java.awt.Dialog.ModalityType;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
public class SwingDemo {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(new Dimension(600, 400));
JDialog dialog = new JDialog(frame, "New",ModalityType.APPLICATION_MODAL);
dialog.setSize(300, 300);
frame.add(new JButton(new AbstractAction("Click to generate") {
@Override
public void actionPerformed(ActionEvent e) {
frame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
dialog.setVisible(true);
}
}));
frame.setVisible(true);
}
}输出

现在,点击它以生成一个新的 Dailog。由于它不是 Modeless,因此你不能在任何时候关闭两个对话框。你必须先关闭新对话框,然后你才能关闭第一个对话框 −

广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP