2013-04-30 46 views
0

我試圖在java上製作幻燈片拼圖。現在我有一個小問題。我想知道我點擊的按鈕的索引,位於ArrayList如何獲取ArrayList中的ActionEvent的來源

ArrayList<JButton>的按鈕,包含許多JButton S,I將其放入此ArrayList之前加入一個ActionListener到每個按鈕。

我在做什麼錯?

下面是一些代碼作爲參考:

public void actionPerformed(ActionEvent ae) 
{ 
    if (buttons.contains(ae.getSource()) == true) 
    { 
     int click = buttons.indexOf(ae.getSource()); // <--- What's wrong with this? 

     System.out.println(click); /* I checked the index I got by printing 
             it out as a test, and it always gives 
             me the Integer '0', even if I clicked 
             the 9th Button for example. */ 
    } 
    else 
    { 
     System.out.println("No click"); 
    } 
} 

回答

0

你可能想要做的是設置在每個按鈕上一個客戶端特性是什麼:

JButton one = new JButton("1"); 
one.putClientProperty("Which", new Integer(1)); 

然後在動作監聽用戶:

JButton button = ae.getSource(); 
int value = button.getClientProperty("Which").intValue(); 

你將不得不添加一些演員和一些錯誤檢查,但這是它的要點...