2014-01-15 4 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); 

и изменить конструктор В:

public B(ArrayList<String> list) 

Тогда у вас будут значения из вашего списка в B как переменная с именем «list».

Кроме того, вы должны удалять следующую строку из B, так как класс, содержащий основной метод, является отправной точкой, а не наоборот.

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; 
} 
Смежные вопросы