JAVA的模式对话框和非模式对话框

时间:2023-03-08 17:52:01

周末的时候,一位网友让我帮他把他的无模式对话框改成有模式对话框。

界面是由swing制作的,都是JFrame,我从来没有接触过swing编程。大致的代码还是看的懂,很多都和C#很相似。

然后就去查资料,JAVA的模式对话框是如何调用的。终于查到了需要用到JDialog类,JDialog的构造函数里可以指定是否是模式对话框。

  public JDialog(Frame owner, String title, boolean modal) {
super(owner == null? SwingUtilities.getSharedOwnerFrame() : owner,
title, modal);
if (owner == null) {
WindowListener ownerShutdownListener =
(WindowListener)SwingUtilities.getSharedOwnerFrameShutdownListener();
addWindowListener(ownerShutdownListener);
}
dialogInit();
}

于是建立一个模式对话框很容易,但是怎么把原来的JFrame界面调用,改成模式对话框还是不明白,结果我进入了一个误区,就是先创建模式对话框,

然后把Jframe加载进来,结果发现怎么弄,都不行。出去转了一圈,终于想到JDialog也是JFrame的一种,直接把Jframe改成JDialog不就行了吗?回来后,

直接改代码,如下:

 //  这里父类由JFrame改成JDialog
public class DataBaseJFrameDlg extends javax.swing.JDialog { private JCounterJFrame iframe; /** Creates new form DataBaseJFrameDlg */
public DataBaseJFrameDlg(JCounterJFrame pframe) {
// 这里父类的构造方法改成JDialog的
super(pframe, "数据库管理", true);
this.iframe = pframe;
initComponents();
}
...
}

编译后,运行,发现问题解决。