可以用JOptionPane来代替JDialog,就不会出现这种情况了。
JOptionPane.showMessageDialog(this,"hello");

解决方案 »

  1.   

    但是JOptionPane不能定制啊,我需要特殊的JDialog而不是那些简单的JOptionPane
      

  2.   

    你的JDialog是非模态的
    JDialog.setModal(true);
    setModal.show();
      

  3.   

    在定义JDialog时,加上this作为参数就可以了。这里的this是对JDialog所在的JFrame的引用。
    JDialog dialog = new JDialog(this);
      

  4.   

    楼上所说,
    也许由于你的JDialog在new的时候,父窗口的参数设置为null.
      

  5.   

    这个问题我也遇到过.
    楼上所说也许有理
    由于你的JDialog在new的时候,父窗口的参数设置为null.这样切换窗口,助窗口出来了,但是本应该在其上的dialog确藏了起来.
    我想只要保证每个模态对话框show之前,确定好他的JFrame,那么应该可以解决问题了把.
      

  6.   

    JDialog dialog = new JDialog(this);
    dialog.setModal(true);
    dialog.show();