问题描述
我创建了一个带有boardWidth和boardHeight的jButton数组。然后向每个按钮添加一个动作侦听器,当我单击它时,我想对该列中的所有Jbutton进行操作,但是当我对btn调用getX()方法时,它将返回Jframe上按钮的x坐标而不是它在数组上的索引。我想通过为每个按钮定义一个“行”和“列”变量并存储索引然后以这种方式调用来解决此问题,但我想知道是否有一种更简单的方法来实现这一点。
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);
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)