我创建了一个具有boardwidth和boardheight的jbuttons数组。然后给每个按钮添加一个actionlistener,当我单击它时,我想对该列中的所有jbuttons执行一些操作,但是当我调用getx()方法到btn时,它返回jframe上按钮的x坐标,而不是数组上按钮的索引。我想通过为每个按钮定义一个“row”和“col”变量来解决这个问题,并存储索引,然后以这种方式调用它,但我想知道有没有更简单的方法来实现这一点。
private void initializeBoard() {
for(int i = 0; i < boardWidth; i++) {
for(int j = 0; j < boardHeight; j++) {
JButton btn = new JButton();
btn.setFont(new Font(Font.SANS_SERIF, Font.BOLD,1));
board[i][j] = btn;
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(((JButton)e.getSource()).getText().equals("") && hasWinner == false && tieGame == false){
if (currentPlayer == "RED"){
for (int row = boardWidth - 1; row >= 0; row--) {
if(board[row][btn.getX()].getText().equals("")) {
//do stuff
break;
}}}
else {
for (int row = boardWidth - 1; row >= 0; row--) {
if(board[row][btn.getX()].getText().equals("")) {
//do stuff
break;
}}}
}
}
});
pane.add(btn);
}
}
}
暂无答案!
目前还没有任何答案,快来回答吧!