Java 是否可以将数组存储到对象数组中?

Java 是否可以将数组存储到对象数组中?,java,arrays,object,togglebutton,Java,Arrays,Object,Togglebutton,我有30个按钮。如果他们感到压力,我想把I和标题传给另一个类 confirm.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { boolean buttonClicked = false; for (i = 0; i < 30; i++) { if (ButtonList[i].isSelected())

我有30个按钮。如果他们感到压力,我想把I和标题传给另一个类

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");
        }
    }
});
confirm.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
boolean buttonClicked=false;
对于(i=0;i<30;i++){
如果(按钮列表[i].isSelected()){
buttonClicked=true;
系统输出打印(i+1);
系统输出打印项次(标题);
通行证(标题、按钮列表[i]);
}
}
如果(!按钮已单击){
JFrame父对象=新JFrame();
showMessageDialog(父级,“您没有选择座位”);
}
}
});
在调用pass()函数之前,我在这里做了一个测试。打印的标题数似乎跟在单击的toggleButton总数之后。如何避免这种情况

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

1马维尔的美国队长

马维尔的美国队长


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

下面是它的样子:

public class ClassThatWantsEvents implements ActionListener{
  @Override
  public void actionPerformed(ActionEvent e) { ...
以及您将如何在当前课程中使用它:

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);
Set selectedSeats=new LinkedHashSet();
对于(int i=0;i<30;i++)
{
如果(按钮列表[i].isSelected())
{
选择座位。添加(i+1);
}
}
if(selectedSeats.isEmpty())
{
JFrame父对象=新JFrame();
showMessageDialog(父级,“您没有选择座位”);
}
其他的
通行证(标题、选定座位);
我的问题是如何将数组I存储到对象中,以便 是否可以在名为pass()的新函数中使用标题传递

因此,我知道您想要通知一个名为“pass”的方法,该方法的标题和所选的项。如果是这样的话,你可以这样做:

pass(list, title);
使用以下代码(使用ArrayList,您不需要使用“buttonClicked”布尔值):

confirm.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
ArrayList=新建ArrayList();
对于(i=0;i<30;i++){
如果(按钮列表[i].isSelected()){
列表.添加(i);
}
}                       
if(list.size()==0){
JFrame父对象=新JFrame();
showMessageDialog(父级,“您没有选择座位”);
}
}
});
我希望这有帮助


编辑:Andy Turner你说得对,我刚刚更改了它

你的标题:是的,你可以在
对象[]
中存储一个数组。但是我不太明白标题和你的问题有什么关系。@AndyTurner先生,你能告诉我如何解决这个问题吗?对我来说似乎不容易,因为我不明白你在问什么。@AndyTurner先生,你为什么要删除你的答案?因为我懒得处理在回答后发生变化的问题。
buttonClicked==!selectedSeats.isEmpty()
。不需要单独的变量。另外,我认为只有当
buttonClicked
为真时才应该调用
pass
。我想我不明白你的意思。什么意思?您的解决方案还包含一个单独的变量作用域,只需按按钮索引即可。这不是我想要的答案。在任何地方,如果(list.size()>0){与所需条件相反,则感谢您的帮助。应该是
ArrayList list=new ArrayList();
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");
        }
    }
});