java.swing中的JDialog类的问题

JDialog类中的setModal(Booleanb)该如何使用?(或者说该如何把用JDialog类创建的对话框设为模态?)JDialog的构造方法JDialog(Fr... JDialog类中的setModal(Boolean b)该如何使用?(或者说该如何把用JDialog类创建的对话框设为模态?)

JDialog的构造方法JDialog(Frame owner,String title)该如何使用?
展开
 我来答
雪飞潇潇
2018-02-10 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:867万
展开全部

关于模态对话框和非模态对话框的解释:

模态对话框(Modal Dialogue Box,又叫做模式对话框),是指在用户想要对对话框以外的应用程序进行操作时,必须首先对该对话框进行响应。一般来说,Windows应用程序中,对话框分为模态对话框和非模态对话框两种。二者的区别在于当对话框打开时,是否允许用户进行其他对象的操作。

参考代码

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//窗口类
public class MyFrame extends JFrame implements ActionListener {

JButton jb1, jb2;

public MyFrame() {
jb1 = new JButton("模态对话框");
jb1.addActionListener(this);
jb2 = new JButton("非模态对话框");
jb2.addActionListener(this);

JPanel jp = new JPanel();
jp.add(jb1);
jp.add(jb2);
add(jp, BorderLayout.NORTH);

setTitle("窗口");//窗口标题
setSize(300, 200);//窗口大小
setLocationRelativeTo(null);//居中
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//当点击窗口右上角的关闭按钮时,退出虚拟机,结束

}

public static void main(String[] args) {
MyFrame mf = new MyFrame();
mf.setVisible(true);
}

@Override
public void actionPerformed(ActionEvent e) {
JButton jb = (JButton) e.getSource();
//判断按钮是哪一个被点击了
if (jb1 == jb) {
MyDialog md1 = new MyDialog(this, "模态对话框");
md1.setModal(true);//设置为模态窗口
md1.setVisible(true);//对话框可见
} else if (jb2 == jb) {
MyDialog md2 = new MyDialog(this, "非模态对话框");
md2.setVisible(true);
}
}
}

//对话框类
class MyDialog extends JDialog {
public MyDialog(Frame owner, String title) {
super(owner, title);// 调用JDialog父类的构造方法
//JDialog(Dialog owner, String title) 
       // 创建一个具有指定标题和指定所有者的对话框。
JLabel jl = new JLabel("弹出的窗口");
add(jl);
setSize(200, 120);//大小
// setModal(true);//设置为模态
setLocationRelativeTo(null);//居中
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);//当点击对话框右上角的关闭按钮时,销毁该对话框
}
}

效果图

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式