Java JButton的gridLayout,每个JButton的actionListener
我有一个网格布局的按钮。我想在actionPerformed函数中区分每个JButton。 我不想“命名”每个按钮。用户随机按下一个按钮。有没有办法知道按下了哪个按钮? 有可能吗Java JButton的gridLayout,每个JButton的actionListener,java,jbutton,actionlistener,grid-layout,Java,Jbutton,Actionlistener,Grid Layout,我有一个网格布局的按钮。我想在actionPerformed函数中区分每个JButton。 我不想“命名”每个按钮。用户随机按下一个按钮。有没有办法知道按下了哪个按钮? 有可能吗 [....] tUsuariCPU = new JButton[mida][mida]; for (int i=0;i<size;i++){ for (int j=0;j<size;j++){ JButton temp = new JButto
[....]
tUsuariCPU = new JButton[mida][mida];
for (int i=0;i<size;i++){
for (int j=0;j<size;j++){
JButton temp = new JButton();
tUsuariCPU[i][j] = temp;
temp.addActionListener(this);
panel.add(temp);
}
}
}
public void actionPerformed(ActionEvent e) {}
[....]
}
[…]
tUsuariCPU=新的JButton[mida][mida];
对于(int i=0;i如果您希望使用单个ActionListener
,您可以通过使用getSource
按钮并将实例与JButton实例进行比较来检查触发事件的组件。下面使用一个循环来循环JButton的2D数组:
public void actionPerformed(ActionEvent e) {}
for ( int i = 0; i < tUsuariCPU.length; i++ ){
for ( int j = 0; j < tUsuariCPU[i].length; j++ ){
if ( e.getSource() == tUsuariCPU[i][j] ){
//do something
}
}
}
}
public void actionPerformed(ActionEvent e){
for(int i=0;i
或者,您可以为每个按钮添加一个ActionListener,或者设置JButton的ActionCommand并使用此值确定哪个JButton触发了事件(e.getActionCommand().equals(myButton.getActionCommand())
)您可以使用JButton.setName()来区分它们(首选)或者您可以为每个按钮创建一个ActionListener