如何从actionPerformed调用外部ArrayList?

时间:2018-12-13 18:28:46

标签: java

我有4个comboBox,我想在按下按钮后将一个对象放到同一ArrayList中。我该怎么办?

        JButton btnRealizarPedido = new JButton("Realizar pedido");
            btnRealizarPedido.addActionListener(new ActionListener() {  
                public void actionPerformed(ActionEvent arg0) {

                    //GestorPedido.crearPedido(aProductos, aCliente)
                }
            });

            btnRealizarPedido.setBounds(20, 220, 150, 30);
            contentPane.add(btnRealizarPedido);


            jComboBox1.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent arg0) {
                }
            });
            jComboBox1.setBounds(120, 60, 58, 30);
            contentPane.add(jComboBox1);

ArrayList位于此JFrame的主体中

2 个答案:

答案 0 :(得分:1)

如果ArrayList是公共的,则您应该可以在同一类中的任何位置访问它。如果它不在同一个类中,则可能必须使用ArrayList作为参数来构造一个构造器,像这样:

public class Main()
{
    public Main(ArrayList<Something>)
    {
    }
}

然后,您应该能够创建该类的新实例并传递到ArrayList中,但是下次,请确保为了清晰起见显示所有代码。

答案 1 :(得分:0)

actionPerformed方法是ActionListener的一个统一子类的方法。在actionPerformed方法中,this指的是它的封闭实例,在这种情况下为ActionListener。如果要引用JFrame子类的字段,则需要qualify this

为此,您必须将封闭类放在其前面:

MyJFrame.this.myArrayList.add(...);