2013-10-29 123 views
0

我使用Netbeans來創建一個Java應用程序。我仍然是初學者。我有4個按鈕,當用戶點擊其中一個按鈕時,我想更改一個圖標。我已經把按鈕和一個圖標,但我不知道如何繼續。單擊按鈕更改圖標。 Java

+0

還有關於JButton的更多信息?你知道如何添加ActionListener給他們嗎?首先向我們展示一些努力 – Sage

+0

我只添加JButton和一個圖標。在這一刻,我不知道ActionListener,但我會嘗試搜索它。但我現在很困惑。我很抱歉,因爲我沒有告訴你一些努力,但我正在嘗試開始。 – user2933161

+0

最後,我dit ..感謝「ActionListener」!!! :)現在,我有另一個問題..我怎麼能undestand哪個按鈕有點擊的用戶?誰都知道? – user2933161

回答

1

您將需要一個ActionListener來更改圖標(爲此使用ImageIcon)。將該ActionListener添加到應該響應點擊的Button中,並執行該操作。

button.addActionListener(/*here your listener*/); 
+0

我們都知道。但我們至少可以期望他知道一個聽衆可能會告訴我們他的努力。 – Sage

+0

感謝您的回答。但我是begginer,所以如果你能給我更多的細節或例子,它會非常有用。 – user2933161

+0

@Sage:我知道。我只是告訴他要尋找什麼。我沒有在這裏拋出完整的代碼答案。當OP顯示沒有太多努力時,我會通過提供搜索條件來保持我的答案簡單並指導正確的方向。 –

0

您是否使用netbeans的windowbuilder? 如果是,檢查生成的代碼爲您指定的按鈕,看看他們是如何做到這一點:)

+0

我不明白我要做什麼.. :( – user2933161

+0

如果你可以等到明天,我會發布你的例子! – Leviathan

+0

好的,非常感謝你! – user2933161

0

好吧,我創建了一個新的JFrame表格到我的包名爲TestFrame。

public class TestFrame extends javax.swing.JFrame { 

     static public ImageIcon imageCross; 
     static public ImageIcon imageCircle; 


     URL cross = TestFrame.class.getResource("cross.jpg"); 
     URL circle = TestFrame.class.getResource("circle.jpg"); 

     boolean clicked = true; 
    /** 
    * Creates new form TestFrame 
    */ 
    public TestFrame() { 
     imageCross = new javax.swing.ImageIcon(cross); 
     imageCircle = new javax.swing.ImageIcon(circle); 
     initComponents(); 
    } 
    ... 

這就是我如何聲明我的圖像。

現在我需要改變他們,當我點擊一個按鈕。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    if(clicked) { 
     jButton1.setIcon(imageCircle); 
     clicked = false; 
    } else { 
     jButton1.setIcon(imageCross); 
     clicked = true; 
    } 

} 

只需添加你需要的所有圖像。爲每個單獨的JButton添加一個actionPerformed(),並用if條件或switch/case(如果有更多)切換圖標。