我遇到了一個問題,我無法找到解決方案,在Java圍繞JButtons旋轉。ActionListener找到按下JButton的正確名稱(不是出現的字符串)?
,因爲我想保持我的代碼「清潔」,我已經聲明採用以下for
環我所有的按鈕:
JButton[] buttons= new JButton[10];
for(int i = 0;i < buttons.length;i++){
buttons[i] = new JButton("Example "+i);
contents2.add(buttons[i]);
buttons[i].addActionListener(listener);}
而且ActionListener的listener
如下:
ActionListener listener = new ActionListener() {
public void actionPerformed (ActionEvent actionEvent) {
if(actionEvent.getSource() == (JButton)buttons[1].getSource()){
System.out.println("Test");
}
}
};
然而然後buttons
在if(actionEvent.getSource() == (JButton)buttons[1].getSource())
有Eclipse告訴我按鈕不能解析爲變量。
在同一行中,我也試過沒有(JButton)
,在buttons[1]
之後沒有.getSource()
,還有更多的組合。
我迷惑了自己,但是我只是想要在listener
中執行的動作發生,如果按下的按鈕是_。
對不起,如果你明白這一點,任何幫助將不勝感激。除了我想要的東西之外,我只是不斷收到字符串。
有很多問題可能導致這種情況,但沒有更多的上下文很難知道你正在遭受哪一個(多個)問題。考慮提供一個[可運行示例](https:// stackoverflow。com/help/mcve),這將證明你的問題,這將減少猜測工作,併產生更好的響應 – MadProgrammer
'因爲我想保持我的代碼'更乾淨',那麼你不應該有if/else(或switch)語句ActionListener。如果按鈕具有類似的功能,那麼你應該做一些像[計算器面板]中的示例(http://stackoverflow.com/questions/21434873/setting-up-keylisteners-using-the-mvc-in-java/21436635# 21436635)。如果功能不能通用,那麼你應該創建單獨的ActionListeners。 – camickr