2014-02-14 61 views
0

當我嘗試將項添加到數組列表時出現錯誤,我不確定我做錯了什麼。將項添加到數組列表時出現錯誤

ArrayList<JButton> buttonList = new ArrayList<JButton>(); 
buttonList.add(button); 
buttonList.add(button1); 
buttonList.add(button2); 

我得到的錯誤是:

Syntax error on token "button", VariableDeclaratorId expected after this token 
Syntax error on token "button1", VariableDeclaratorId expected after this token 
Syntax error on token "button2", VariableDeclaratorId expected after this token 

完整的代碼;

public buttons { 
    JButton button = new JButton(); 
    JButton button1 = new JButton(); 
    JButton button2 = new JButton(); 

    ArrayList<JButton> buttonList = new ArrayList<JButton>(); 

    buttonList.add(button); 
    buttonList.add(button1); 
    buttonList.add(button2); 

    public static void main(String args[]) { 
    } 
} 
+2

你在哪裏聲明'按鈕''button1'和'button2'? – Chronicle

+0

請顯示您的完整代碼。看起來像'ArrayList buttonList'是你的類的一個字段,你不是在類的構造函數中初始化它。 –

+0

'按鈕'應該是一個班級嗎? – mdl

回答

2

的問題是,你不能在類定義中直接添加Java代碼,而不是將其添加在一個方法。

移動的這部分代碼:

buttonList.add(button); 
buttonList.add(button1);  
buttonList.add(button2); 

到一個類的構造函數:

public buttons() { 
    buttonList.add(button); 
    buttonList.add(button1);  
    buttonList.add(button2); 
} 

另外,如果你在類的構造函數初始化這些變量,以及它會更好:

public buttons { 

    JButton button; 
    JButton button1 = new JButton(); 
    JButton button2 = new JButton(); 

    ArrayList<JButton> buttonList; 

    public buttons() { 
     button = new JButton(); 
     button1 = new JButton(); 
     button2 = new JButton(); 
     buttonList = new ArrayList<JButton>(); 
     //... 
     buttonList.add(button); 
     buttonList.add(button1); 
     buttonList.add(button2); 
    } 

    public static void main(String args[]){ 

    } 
} 
+0

我必須在同一個類中使用其他方法中的變量,這就是爲什麼我使它們成爲全局變量。 – Seeker

+1

@ user3288493問題不在於變量* global *,問題在於如何使用它們。如果您注意到,我的答案將變量保存爲類中的字段,只是將初始化移至類構造函數。 –

0

變量: 按鈕,按鈕1或按鈕2 不存在

嘗試

ArrayList<JButton> buttonList = new ArrayList<JButton>(); 
JButton button = new JButton(); 
buttonList.add(button); 
JButton button1 = new JButton(); 
buttonList.add(button1); 
JButton button2 = new JButton(); 
buttonList.add(button2); 
+0

查看更新的代碼。 –

+0

它仍然給出相同的錯誤。 – Seeker

1

把裏面的主要方法

public static void main(String args[]){ 
    JButton button = new JButton(); 
    JButton button1 = new JButton(); 
    JButton button2 = new JButton(); 

    ArrayList<JButton> buttonList = new ArrayList<JButton>(); 
     buttonList.add(button); 
     buttonList.add(button1); 
     buttonList.add(button2); 

} 
1

另外,您還可以在這個代碼使用實例初始化爲(注意角落找尋buttonList.add開閉括號()語句):

public class Button { 
    JButton button = new JButton(); 
    JButton button1 = new JButton(); 
    JButton button2 = new JButton(); 
    ArrayList<JButton> buttonList = new ArrayList<JButton>(); 

    { 
    buttonList.add(button); 
    buttonList.add(button1); 
    buttonList.add(button2); 
    } 

    // rest of the code ... 
} 
相關問題