2013-01-03 38 views
0

我正在開發一個使用Matisse,NetBeans GUI Builder的簡單Swing應用程序。我在所有的窗口中都面臨同樣的問題。當我通過我的主JFrame或其他JDialog打開一個新的JDialog時,當我在後臺窗口中單擊某處時,我失去了使用我的鼠標在前臺JDialog中選擇字段的功能。JDialog中的鼠標點擊功能丟失

enter image description here

在附接在圖像中,背景窗口是一個JFrame和我建立前景的JDialog與新的JDialog(此,TRUE);

你能幫我解決這個問題嗎?作爲一個提示,如果在失去鼠標功能後,我使用Tab鍵前進到「ComboBox Rol」或日曆欄,然後點擊空格鍵,我再次點擊鼠標,一切工作都像一開始一樣完美。

下面是代碼:

public class PrincipalUI extends javax.swing.JFrame { 

private void jMenuItemUserManagementActionPerformed(java.awt.event.ActionEvent evt) {               
     userManagementUI = new UserManagementUI(this, true); 
     userManagementUI.setVisible(true); 
    } 
} 

public class UserManagementUI extends javax.swing.JDialog { 
/** 
    * Creates new form UserManagement 
    */ 
    public UserManagementUI(Frame owner, boolean modal) { 
     super(owner, modal); 
     initOperations(); 
     initComponents(); 
     initPostOperations(); 
    } 

} 
+0

你可以使用一個簡單的代碼示例來演示你的問題 – MadProgrammer

+0

這是MODAL框的用途... – Aubin

+0

我附上了代碼。 @Aubin我猜模態盒的目的是爲了防止用戶訪問背景窗口,但我的問題是,我失去了在後臺窗口中點擊某處後用鼠標在前景JDialog中選擇字段的可選性。 無論如何,如果我將模態更改爲false,我也有同樣的問題。 – rocotocloc

回答

1

看起來不正確父的對話框。當您創建JDialog時,請檢查this。這可能是不正確的。例如。錯誤的父對話框或框架實例。

+0

'this'是我在這個特例中的JFrame實例。這很奇怪,因爲我的應用程序的所有窗口中都有相同的問題。我有這個問題,即使這樣非常簡單的JOptionPane: JOptionPane.showConfirmDialog(this,message); 這是一個簡單的窗格,用於確認從JTable刪除某些記錄。 我不得不說我正在CentOS虛擬機上開發它。我沒有機會在本地操作系統上測試它,但我不知道這是否會成爲問題。 – rocotocloc

0

我在Windows上測試它,並且工作得很好,所以忘了它。這是CentOS或至少在虛擬機上的一個問題。

感謝您的幫助球員。