首页 > 代码库 > JAVA的模式对话框和非模式对话框

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

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

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

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

 1  public JDialog(Frame owner, String title, boolean modal) {
 2         super(owner == null? SwingUtilities.getSharedOwnerFrame() : owner, 
 3               title, modal);
 4      if (owner == null) {
 5         WindowListener ownerShutdownListener =
 6         (WindowListener)SwingUtilities.getSharedOwnerFrameShutdownListener();
 7          addWindowListener(ownerShutdownListener);
 8      }
 9         dialogInit();
10     }

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

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

直接改代码,如下:

 1 //  这里父类由JFrame改成JDialog
 2 public class DataBaseJFrameDlg extends javax.swing.JDialog {
 3 
 4     private JCounterJFrame iframe;
 5 
 6     /** Creates new form DataBaseJFrameDlg */
 7     public DataBaseJFrameDlg(JCounterJFrame pframe) {
 8         // 这里父类的构造方法改成JDialog的
 9         super(pframe, "数据库管理", true);
10         this.iframe = pframe;
11         initComponents();
12     }
13     ...
14 }

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