制作中国象棋程序的棋盘GUI

时间:2013-07-01 03:04:17

标签: java swing panel layout-manager paintcomponent

我正在用Java编写一个Chinese Chess程序,非常感谢有关设计/实现GUI的一些指导。

将棋盘划分为9x10网格,棋盘的“图像”占据每个单元格。单击时单元格也需要“注册”,这样我就知道单击了哪一块。

1)我在考虑代表董事会的GridLayout的布局管理器JPanel。如何为每个组件添加图像?

public void paintComponent(Graphics g) {
   Image dog = new ImageIcon("dog.png").getImage();
   add(dog)
}

不起作用dog不是Component

2)我如何在每个单元格中注册点击次数?

2 个答案:

答案 0 :(得分:4)

使用包含图标的JLabel。然后将标签添加到网格布局中。有关详细信息,请阅读How to Use Icons上的Swing教程。

另请阅读How to Write a Mouse Listener部分,了解标签上的点击次数。

或者你可以使用带有Icon的JButton然后使用:

button.setBorderPainted(false);

因此您看不到单击按钮的操作。然后你将使用ActionListener。本教程还有一个关于使用ActionListener的部分。

答案 1 :(得分:4)

是的,GridLayout似乎适合此用途。

请参阅构造函数JButton(Icon)

有关在JLabelJButton个实例中使用的现有图片切片集的示例,请参见this answer