是否可以将数组存储到 object 数组中?

Is it possible to store array into object array?

我有 30 个JToggleButton。如果他们受到压力,我想将 i 和标题传递给另一个 class .

confirm.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        boolean buttonClicked = false;
        for (i = 0; i < 30; i++) {
            if (ButtonList[i].isSelected()) {
                buttonClicked = true;

                System.out.print(i+1);
                System.out.println(title);
                pass(title, ButtonList[i]);
            }
        }
        if (!buttonClicked) {
            JFrame parent= new JFrame();
            JOptionPane.showMessageDialog(parent, "You haven't select a seat");
        }
    }
});

在调用past()函数之前,我在这里做了一个测试。打印的标题数量似乎跟随点击的 toggleButton 总数。如何避免这种情况?

上面的代码给出了这个输出(假设点击了 2 个切换按钮)

1Marvel's Captain America

2Marvel's Captain America

想要接收数据的class可以实现ActionListener接口。然后您可以使用 class 而不是新的 ActionListener。

这可能是这样的:

public class ClassThatWantsEvents implements ActionListener{
  @Override
  public void actionPerformed(ActionEvent e) { ...

以及您将如何在当前 class 中使用它:

confirm.addActionListener(ClassThatWantsEvents);

您是否要让指定电影的所有选定座位都通过?

    Set<Integer> selectedSeats = new LinkedHashSet<>();
    for (int i = 0; i < 30; i++) 
    {
        if (ButtonList[i].isSelected()) 
        {
            selectedSeats.add(i + 1);
        }
    }

    if (selectedSeats.isEmpty()) 
    {
        JFrame parent= new JFrame();
        JOptionPane.showMessageDialog(parent, "You haven't select a seat");
    }
    else
        pass(title, selectedSeats);

My question is how can I store the array i into a object so that it can pass with the title in a new function called pass() ?

所以,我了解到您想通知一个名为 "pass" 的方法,其中包含标题和它被选中的项目。如果是这种情况,您可以执行以下操作:

pass(list, title);

使用下面的代码(使用 ArrayList 你不需要使用 "buttonClicked" 布尔值):

confirm.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        ArrayList<int> list = new ArrayList<int>();

        for (i = 0; i < 30; i++) {
            if (ButtonList[i].isSelected()) {
                list.add(i);
            }
        }                       
        if (list.size() == 0) {
            JFrame parent= new JFrame();
            JOptionPane.showMessageDialog(parent, "You haven't select a seat");
        }
    }
});

希望对您有所帮助。

编辑:安迪·特纳,你说得对,我刚刚修改了它