Java 是否可以将数组存储到对象数组中?
我有30个按钮。如果他们感到压力,我想把I和标题传给另一个类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())
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");
}
}
});