2014-01-15 28 views
0

我是新來的Java,我想發送一個ArrayList的值到另一個類,我將顯示在文本字段中的值。到目前爲止,我有ArrayList到不同的類

public class A { 
    public static void main(String[] args) { 
    String[] color= {"red", "blue"}; 
    List<String> list = new ArrayList<String>(); 

    for (String x : joke) 
     list.add(x); 
    } 
} 

和我有第二類

public class B extends JFrame{ 
    A a = new A(); 
    private JButton but; 
    private JTextField txt; 

    public B(){ 
    ...GUI declarations(layout, etc) 
    but = new JButton("Button); 
    txt = new JTextField(30); 
    add(but); 
    add(txt); 
    ColorHandler color = new Color 
    color.addActionListener(but); 
    } 

    private class ColorHandler implements ActionListener{ 

    public void actionPerformed(ActionEvent event){ 
     for(int i=0;i<list.size();i++){ 
     txt.append(list.get(i).toString()); 
     } 
    } 
    } 

我希望你明白我的代碼。

+4

你的問題是什麼? –

+0

你永遠不會實例化你的gui ..你不應該把主體放在'A'我想。 – nachokk

+1

如果你想讓'B'使用'list',你需要在方法或構造函數中傳入'list'給它(或者它需要對'A'的引用,然後它可以調用屬於'A'的方法來。獲取列表 –

回答

1

你想要做的是通過添加以下行更改末主要方法是什麼:

new B(list); 

和更改B的構造函數到:

public B(ArrayList<String> list) 

然後,您將B列表中的值作爲名爲「list」的變量。

此外,你應該從B中踢出下面一行,因爲包含main方法的類是你的起點,反之亦然。

A a = new A(); 
0

用列表作爲參數創建一個B類。

public class A { 
    public static void main(String[] args) { 
    String[] color= {"red", "blue"}; 
    List<String> list = new ArrayList<String>(); 

    for (String x : joke) 
     list.add(x); 
    } 

    B class = new B(list); 
} 

與列表參數構造函數,B類

public B(List list){ 
    ...GUI declarations(layout, etc) 
    but = new JButton("Button); 
    txt = new JTextField(30); 
    add(but); 
    add(txt); 
    ColorHandler color = new Color 
    color.addActionListener(but); 

    ArrayList array = list; 
} 
相關問題