Java 如何在一组循环生成的按钮中识别按钮?
我有一组用这个代码生成的循环按钮Java 如何在一组循环生成的按钮中识别按钮?,java,arrays,swing,netbeans,jbutton,Java,Arrays,Swing,Netbeans,Jbutton,我有一组用这个代码生成的循环按钮 this.panelCuerpo.setLayout(new GridLayout(4,5)); for(int i = 1; i<=20; i++){ final JToggleButton b = new JToggleButton(new ImageIcon("/images/available.png")); panelCuerpo.add(b); b.setIcon
this.panelCuerpo.setLayout(new GridLayout(4,5));
for(int i = 1; i<=20; i++){
final JToggleButton b = new JToggleButton(new ImageIcon("/images/available.png"));
panelCuerpo.add(b);
b.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/available1.png")));
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt){
if(b.isSelected()){
b.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/busy1.png")));
cantidadBoletas++;
}else{
b.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/available1.png")));
cantidadBoletas--;
}
System.out.println(cantidadBoletas);
}
});
}
this.panelCuerpo.setLayout(新的GridLayout(4,5));
对于(int i=1;i您可以维护JToggleButton
的列表
,然后通过索引
获取元素。除此之外,您可以实现ActionListener
而不是在循环中添加ActionListener
,它可以用于所有按钮,您只需要编写b.addActionListener(此);
在循环中
注意:最好从i=0
开始,而不是从1
开始。您可以维护JToggleButton
的列表
,然后通过索引
获取元素。除了在循环中添加ActionListener
之外,还可以实现可用于所有按钮的ActionListener
您只需要在循环中编写b.addActionListener(this);
注意:最好从i=0开始,而不是从1开始,您可以:
- 使用
操作
API,可以触发相关按钮的选定
状态。这允许您将按钮与其应采取的基本“操作”分离。有关详细信息,请参阅
- 使用
JButton
的actionCommand
属性。这允许您拥有与按钮相关联的某种“标识符”,它与文本无关
- 使用数组或
列表
来维护对按钮的引用
您可以:
- 使用
操作
API,可以触发相关按钮的选定
状态。这允许您将按钮与其应采取的基本“操作”分离。有关详细信息,请参阅
- 使用
JButton
的actionCommand
属性。这允许您拥有与按钮相关联的某种“标识符”,它与文本无关
- 使用数组或
列表
来维护对按钮的引用
我决定使用第二个选项,这是我一直在寻找的,但我无法保存连续的数字。它始终是“1-0”(1是对的,0不是。每个按钮都应该有自己的数字)。有什么想法吗?使用循环中的“I”?
(int i=0;iMake user您使用的是ActionEvent#getActionCommand,而不是b的引用这是问题所在,我使用的是b引用。“evt”(actionPerformed()中的参数是正确的方式)。我决定使用第二个选项,这是我正在寻找的,但我无法保存连续的数字。它始终是“1-0”(1是对的,0不是。每个按钮都应该有自己的编号)。有什么想法吗?使用循环中的“i”for(int i=0;i make user您使用的是ActionEvent#getActionCommand,而不是b的引用问题出在哪里,我使用的是b引用。“evt”(actionPerformed()中的参数是正确的方式)。