2016-03-16 178 views
0

我實現了下面的代碼來讓我的角色圖像改變,當我點擊我在Netbeans的JPanel中創建的按鈕,但它甚至沒有被調用(通過在控制檯中添加一行來打印出來,但是這甚至沒有被打印。任何幫助,將不勝感激。JPanel按鈕沒有響應?

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
    // TODO add your handling code here: 
     System.out.println("Switch!"); 
     snowman.removeAllImages(); 
     snowman.addImage(image2); 
+1

不比較使用==運算符的字符串。這是在尋求麻煩。 – Stultuske

+0

對不起,我粘貼了錯誤的代碼。更新了問題。 – zmi

+0

@zmi控制檯中是否有任何錯誤? –

回答

1

化妝嘗試和catch語句在你的行動e.pritntrace它非常有幫助調試你的代碼,並找到自己的錯誤希望這將幫助你

0

改變時我點擊了我在Netbeans的JPanel中創建的按鈕,但它甚至沒有被調用(通過添加一行來打印ou t在控制檯中,但它甚至沒有被打印。

您可能需要確保:

  • 確認按鈕,您有興趣產生的點擊事件已添加爲的ActionListener對象

例如:

  • 如果您爲您的ActionListener對象的內部類,

    btn.addActionListener(new ButtonHandler()); 
    
  • 如果您實現您當前使用的ActionListener類,

    btn.addActionListener(this); 
    
  • 如果您創建一個匿名的ActionListener對象,

    btn.addActionListner(new ActionListener(){   
        @Override 
        public void actionPerformed(ActionEvent e){ 
         //To do when button is clicked 
        } 
    }); 
    

我看到你創建你自己的方法來處理的動作事件:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) 
  • 如果你這樣做,記住填補你的代碼中的ActionListener對象的actionPerformed()方法,加入到你的按鈕。

實施例:

@Override 
public void actionPerformed(ActionEvent e){ 
    jButton2ActionPerformed(e); 
} 
0

通過user3437460很好的解釋。如果這沒有幫助,請在這裏複製更多的代碼來理解它。添加一個按鈕監聽器,並確保你調用了你的私有方法,如下所示。

btn.addActionListner(new ActionListener(){   
    @Override 
    public void actionPerformed(ActionEvent e){ 
     jButton2ActionPerformed(e); 
    } 
    });