HI all,如何判斷哪個項目觸發了鼠標收聽器
我正在嘗試編寫一個簡單的星級評估組件。我對Java語言相當陌生,我不確定我想要完成的任務甚至可以用Java來完成。是否可以在JLabel數組中添加JLabel,並且數組中的每個JLabel都有一個鼠標事件偵聽器。現在是否可以設置它,以便在鼠標事件發生時觸發標籤[3],我可以獲取它的索引值?
這裏是我建我的面板
public Rating(Integer max,int size) {
JLabel position = new JLabel[max];
this.setLayout(new FlowLayout());
for(int i=0; i != max;i++){
position[i]=new JLabel(icons.getIcon("star-empty", size));
position[i].setOpaque(true);
position[i].addMouseListener(this);
add(position[i]);
}
}
@Override
public void mouseEntered(MouseEvent e) {
JLabel a= (JLabel) e.getComponent();
//****Have some code in here to tell me where in the position array the event came from????***
int index = ?????
}
思考/觀點/建議請。
注意我想使用按鈕,但它看起來很亂,並且很想用ImageIcons找到一種方法。
THanks。
索引重要的原因是因爲任何小於等於被點擊的索引需要設置爲「true」,所以我可以繪製一個填充的開始,並可以返回其他用途的評分。 – user597608 2011-03-20 01:07:53
因此,您可以遍歷按鈕陣列併爲每個按鈕設置圖標,直至包括點擊的按鈕。無論如何,你已經得到了如何做到這一點的答案。 – camickr 2011-03-20 02:08:56