2015-11-06 73 views
0

這意味着當我點擊我的JFrame中的一個按鈕時,會顯示一個JDialog。我想禁止我的JFrame,它不會被觸摸,但仍然會顯示在屏幕上。 我在框架中使用命令:如何將JDialog粘貼到JFrame?

button.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
       MyDialog md=new MyDialog(MyFrame.this); 
       MyDialog.setVisible(true);     
      } 
     }); 

,並在類MyDialog擴展的JDialog:

public MyDialog(MyGUI myGUI) { 
    super(myGUI,true);} 

在我的代碼出問題了嗎? 還是有另一種方法來製作它? 請幫助我!

+3

你的意思是讓對話[模態](https://en.wikipedia.org/wiki/Modal_window)?看看這裏:http://docs.oracle.com/javase/tutorial/uiswing/misc/modality.html – Cos64

+0

我沒有看到任何錯誤的代碼。你正在通過'super(myGUI,true);'來設置你的對話框模式,那麼你的問題是什麼/什麼不工作? –

+0

是的,我的程序仍然有效,但不是除外。當我的JDialog打開時,我的JFrame仍然可以被觸摸。我不知道上面兩個命令之間的區別:新的MyDialog(MyFrame.this)和新的MyDialog(this)。我不知道它本身是否是合理的? –

回答

2

MyDialog.setVisible(true);前補充一點:

MyDialog.setModal(true); 

編輯: 這與你已經在使用JDialog(Frame owner, boolean modal)構造相同的效果。你確定你還沒有得到一個模態對話框嗎?

+0

是的,JDialog和JFrame還是特別的工作。當我點擊JFrame中的按鈕時,我仍然可以創建不同的JDialog。 –

0

我發現我的情況。我曾經爲JDialog設置過一些設置,其中兩個是:

Container con= getContentPane(); 
con.add(p); 

抱歉大家都是我的池JAVA。我是一個開始,我試圖增加我的知識。非常感謝你!