【发布时间】:2013-09-15 23:34:01
【问题描述】:
for(y=0;y<length;y++){
for(x=0;x<width;x++){
grid[x][y]=new JButton(" ");
grid[x][y].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
((JButton)e.getSource()).setBorder(border);;
System.out.println("Where do you want to move this piece");
}
});
grid[x][y].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent r){
grid[x][y]=grid[x][y-1];
((JButton)r.getSource()).setBorder(border);;
System.out.println("Derp");
}
});
frame.add(grid[x][y]);
}
}
我想单击一个棋子,然后当您单击另一个方块时,该棋子会向上移动一个。我知道这是错误的,我会展示合法的动作,但现在我需要让棋子移动。请帮忙!! 在弄清楚这一点之前,我完全被困住了。
【问题讨论】:
-
所以
grid是JButton的数组,而您只是在网格中移动按钮? - 这就是代码的样子。您应该考虑将“游戏状态”和“游戏视图”分成不同的类。 -
是什么让你觉得代码有问题?
-
我只想将我点击的第一个 Jbutton 移动到我点击的第二个点的位置。 e=r 如果就这么简单
-
或许可以致电
repaint()。图形可能很挑剔,因此最好借鉴一个工作示例。
标签: java swing jbutton actionlistener chess