一个awt问题,国际象棋的棋盘

leon0122 2005-10-22 04:41:11
下面的程序是做一个国际象棋的棋盘(国际棋盘的黑白区域全部是由按钮生成)
现想加入如下功能。随便点击一块区域,如果它是黑色的,让它变成白色,如果它是白色,让它变成黑色。
象棋棋盘代码如下:
import java.awt.*;
import java.awt.event.*;
public class ChesBoard extends Frame
{
private Button p;
private MyActionListener my = new MyActionListener();
ChesBoard(String s)
{
super(s);
int i,j;
this.setLayout(new GridLayout(12,12));
//FOR循环中,i用来判断行,如果是奇数行就以白色块开始
//如果是偶数行,就以黑色块开始
for(i=1;i<=12;i++)
{
//For循环中,j用来判断列,
for(j=1;j<=12;j++)
{
if(i%2==0)
{
//如果是奇数行的奇数列,为白色方块,否则是黑色方块
p= new Button();
MyActionListener my =new MyActionListener();
p.addActionListener(my);
if(j%2!=0)
{
p.setBackground(Color.WHITE);
this.add(p);
}
else
{
p.setBackground(Color.BLACK);
this.add(p);
}
}
else
{//如果是偶数行的奇数列,为黑色,否则为白色
p= new Button();
MyActionListener my = new MyActionListener();
p.addActionListener(my);
if(j%2==0)
{
p.setBackground(Color.WHITE);
this.add(p);
}
else
{
p.setBackground(Color.BLACK);
this.add(p);
}
}
}

}
}
class MyActionListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
//如果该按钮的颜色是黑色,那么将它的颜色变成白色
//如果该按钮的颜色是白色,那么将它的颜色变成黑色

}
}
public static void main(String args[])
{
ChesBoard cb = new ChesBoard("国际象棋棋盘");
cb.setSize(480,480);
cb.setLocation(400,300);
cb.setVisible(true);
}
}

由于我在添加按钮的时候,没有设定该按钮的名字,所以一时无法在actionPerformed方法中得到被单击按钮的引用。还请各位帮忙解决如何在actionPerformed方法中得到被单击按钮的引用的问题。
...全文
177 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lizi02 2005-10-23
  • 打赏
  • 举报
回复
getBackground
public Color getBackground()
Gets the background color of this component.

Returns:
this component's background color; if this component does not have a background color, the background color of its parent is returned
Since:
JDK1.0
See Also:
setBackground(java.awt.Color)



呵呵 居然给我找到了
这样就可以了
先判断一下 ,然后改掉
laodabest 2005-10-23
  • 打赏
  • 举报
回复
楼上的这个方法我用过了,可是不行,颜色变了一下灰的,当鼠标移开的时候又恢复到原来的颜色了
lizi02 2005-10-22
  • 打赏
  • 举报
回复
恩 不对 我上面的话不对
lizi02 2005-10-22
  • 打赏
  • 举报
回复
event有个方法是getsource 取得对象
用这个和btn来比较
laodabest 2005-10-22
  • 打赏
  • 举报
回复
我也帮忙顶一下
arsaluo 2005-10-22
  • 打赏
  • 举报
回复
帮顶

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧