2016-07-29 48 views
0

我有2個框架在我的項目上,1是我的主框架和第二個是隻有當我點擊按鈕可見的框架。設置JFrame總是在頂部,並禁用它後面的所有JFrame

當按鈕被點擊時顯示jframe.class。

這裏是我在我的按鈕操作代碼進行

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
     jframe jf = new jframe(); 
      jf.setVisible(true); 
      jf.setAlwaysOnTop(true); 
    } 

此代碼的工作,但問題是我想要的主框架禁用或無法點擊,而第二架是可見......

我可以做到JOptionPane的相同概念嗎?

+2

參見[多個JFrames的使用,好/壞實踐?](http://stackoverflow.com/q/9554636/418556) –

回答

6

你基本上是在談論一種模態。您應該使用一個JDialog和模式設置爲true,而傳遞的JFrame作爲一個參數:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){ 
    myFrame = new JFrame("Hello World"); 
    modal = new JDialog(myFrame, "This is a modal!", true); 
    modal.setVisible(true); 
    modal.setLocationRelativeTo(null); //Center the modal 
} 

你可以在這裏找到更多的文檔:

https://docs.oracle.com/javase/tutorial/uiswing/misc/modality.html

+0

也許我的問題是很難理解......對不起... –

+0

也許你不明白答案,但它與許多人會爲這個要求提供的是一樣的。這顯然是合適的。如果你按照我在評論中提供的鏈接,你可能會注意到它也提到了(在許多其他可能性中)模態對話框。 –

+0

事實是,我有一個主要的jframe,如果鼠標不移動,它會自動顯示登錄表單並禁用主jframe。希望你明白我的意思..抱歉我的英文不好:-) –