2012-11-21 17 views
0

我使用NetBeans創建了一個框架。該框架有兩個按鈕A和B.按鈕A最初被禁用。只有當按鈕B被點擊時才能被啓用。如何在鼠標懸停時啓用JButton?

public newFrame() { //newFrame is the name of the frame that has buttons A&B 
    initComponents(); 

    btn_A.disable(); 
} 

    private void btn_BActionPerformed(java.awt.event.ActionEvent evt) 
{ 
    btn_A.enable(); 
} 

的問題是,按鈕A變得活躍/當鼠標被移動超過它即按鈕B是否被點擊或不inspite啓用。我怎樣才能解決這個問題?

我希望按鈕A只能在點擊按鈕B之後啓用,而不是任何其他事件的結果。

+0

哪裏是按鈕B,爲了更好地幫助發佈[SSCCE](http://sscce.org/),可短期運行,可編譯,只需兩個JButton – mKorbel

+0

按鈕B與按鈕A位於同一框架上。 – user1748910

+0

'按鈕B與按鈕A位於同一幀。'由你決定,然後在這裏回答你的問題 – mKorbel

回答

1

使用btn_A.setEnabled(false)而不是btn_A.disable()

0

試試下面的代碼:

button. addMouseListener(new MouseAdapter() { 
     public void mouseEntered(MouseEvent me) { 
      button.setEnable(true); 
     } 

     public void mouseExited(MouseEvent me) { 
      button.setEnable(false); 
     } 

    }); 
+0

這將如何幫助?他/她有一個明確的要求:按鈕A應該被禁用,直到按鈕B被點擊。當一個按鈕被點擊時,你會得到一個體面的事件(ActionEvent),你可以用ActionListener攔截它。你爲什麼要選擇一個鼠標監聽器 – Robin

1

btn_A.enable()是一種方法已過時。
要完成此任務,您可以將其替換爲btn_A.setEnabled(false);以禁用按鈕,並且btn_A.setEnabled(true);啓用該按鈕。

此外,還有一個建議是,添加像在你的方法下面的語句,如果你覺得有什麼不對發生:

System.out.println("Some statement relevant to the method"); 

這些額外的語句是你知道什麼時候實際上是執行該方法的主要目的。