是否可以将数组存储到 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");
}
}
});
希望对您有所帮助。
编辑:安迪·特纳,你说得对,我刚刚修改了它
我有 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");
}
}
});
希望对您有所帮助。
编辑:安迪·特纳,你说得对,我刚刚修改了它