Java ArrayList指向不同的类

Java ArrayList指向不同的类,java,arraylist,Java,Arraylist,我是Java新手,我正在尝试将ArrayList的值发送到另一个类,在该类中,我将在文本字段中显示该值。到目前为止我有 public class A { public static void main(String[] args) { String[] color= {"red", "blue"}; List<String> list = new ArrayList<String>(); for ( String x : joke )

我是Java新手,我正在尝试将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);
    }
 }
公共A类{
公共静态void main(字符串[]args){
字符串[]颜色={“红色”,“蓝色”};
列表=新的ArrayList();
用于(字符串x:笑话)
增加(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());
       }
     }
  }
公共类B扩展JFrame{
A=新的A();
私人按钮,但;
私有JTextField-txt;
公共图书馆B(){
…GUI声明(布局等)
但是=新的JButton(“按钮”);
txt=新的JTextField(30);
添加(但);
添加(txt);
ColorHandler颜色=新颜色
color.addActionListener(但是);
}
私有类ColorHandler实现ActionListener{
已执行的公共无效操作(操作事件){

对于(inti=0;i创建一个以列表为参数的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);
}

您要做的是通过添加以下行来更改末尾的main方法:

new B(list);
并将B的构造函数更改为:

public B(ArrayList<String> list)

你的问题是什么?你从来没有实例化过你的gui。我认为你不应该把main放在
A
中。如果你想
B
使用
list
你需要通过方法或构造函数将
list
传递给它(或者它需要一个对
a
的引用,然后它可以调用属于
a
的方法来获取列表。我尝试使用一个方法来传递它,但我有错误。你不应该在
a
中使用一个主方法发布一个有效的示例来演示你的问题,在中了解更多信息
public B(ArrayList<String> list)
A a = new A();