我必須創建包含了在一個陣列中創建10個按鈕的GUI的一個陣列時,爲了避免重複的代碼:如何使用組件
public static final JButton[] buttons = new JButton[10];
每個按鈕表示0至9。我一個數字希望,每當我按下一個按鈕,暫定值我認爲,將10相乘並添加到按鈕的值(這是諷刺的是,它的指數)。因此,我寫了下面的代碼:
public void actionPerformed (ActionEvent e) {
if (e.getSource()==CalculatorGUI.buttons[0]) {
num=num*10;
CalculatorGUI.resultLabel.setText(Double.toString(num));
}
if (e.getSource()==CalculatorGUI.buttons[1]) {
num=num*10+1;
CalculatorGUI.resultLabel.setText(Double.toString(num));
}
if (e.getSource()==CalculatorGUI.buttons[2]) {
num=num*10+2;
CalculatorGUI.resultLabel.setText(Double.toString(num));
}
if (e.getSource()==CalculatorGUI.buttons[3]) {
num=num*10+3;
CalculatorGUI.resultLabel.setText(Double.toString(num));
}
if (e.getSource()==CalculatorGUI.buttons[4]) {
num=num*10+4;
CalculatorGUI.resultLabel.setText(Double.toString(num));
}....
這段代碼的問題是,代碼複製本身有輕微的變化。我想問一下是否有寫這個代碼在較短的方式,而不重複一個更好的方法(例如,沒有單獨的「如果」爲每個按鈕)。
一個問題:有沒有在Java中得到一個數組的元素,並返回該元素的索引此數組中的任何方法? – CrazySynthax
我做了你用getText()寫的東西。我得到一個編譯錯誤: 「的JButton不能被解析爲一個類型爲」 – CrazySynthax
@CrazySynthax你進口嗎?我沒有粘貼完整的工作代碼,只是替代你的代碼。 – user1803551