2D数组和JButton

时间:2012-10-23 06:02:07

标签: java jbutton multidimensional-array

现在我需要写一个8-puzzle游戏,看起来像[像这样]

enter image description here

教师要求我们编写三个不同的类,分别是Piece.java,EightPuzzle.java和EightPuzzlePanel.java。 如你看到的, Piece.java代表这八个拼图板中的每个单独的部分,如“1”,“2”; EightPuzzle.java代表了用于容纳这9个/按钮的游戏板。 EightPuzzlePanel.java是GUI的东西。

所以我的问题是,因为我们需要创建一个Piece [] [] piece = new Piece [] [],一个2D数组,我们还需要在棋盘上安排这些棋子。我以为我可以创建9个JButton并将2D数组与9个JButton链接(或者有更好的方法对2D数组进行排序),但我不知道如何做到这一点。

此外,按钮需要由鼠标和键盘控制。这对我来说是另一个挑战。

2 个答案:

答案 0 :(得分:2)

由于这是作业,我不会详细介绍,但这就是我要做的事情:

  1. Piece扩展JButton类。 Piece对象显示要显示的文本以及您希望它呈现的图像的位置。您应该能够在线找到大量有关如何将图像添加到JButton
  2. 的示例
  3. EightPuzzle扩展JPanel类,并使用Grid Layout在网格中整齐地呈现 Pieces 。该类采用了Piece个对象的2D数组,然后将对其进行渲染。
  4. EightPuzzlePanel也扩展JPanel类。此类接收另一个JPanel(EightPuzzle)并附加您可能需要的任何其他按钮。
  5. 最后创建一个扩展JFrame的Main类,然后将EightPuzzlePanel附加到它(它应该包含另一个面板和其他按钮)。

答案 1 :(得分:0)

对于鼠标和键,您需要设置一些动作侦听器。

对于这个问题,你可以使用一维数组。只要您在阵列中存储了9个部分,就可以使用layout manager将它们放在正确的位置 - 然后遍历数组很简单。