现在我需要写一个8-puzzle游戏,看起来像[像这样]
教师要求我们编写三个不同的类,分别是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数组进行排序),但我不知道如何做到这一点。
此外,按钮需要由鼠标和键盘控制。这对我来说是另一个挑战。
答案 0 :(得分:2)
由于这是作业,我不会详细介绍,但这就是我要做的事情:
Piece
扩展JButton
类。 Piece
对象显示要显示的文本以及您希望它呈现的图像的位置。您应该能够在线找到大量有关如何将图像添加到JButton
。EightPuzzle
扩展JPanel
类,并使用Grid Layout在网格中整齐地呈现 Pieces 。该类采用了Piece
个对象的2D数组,然后将对其进行渲染。EightPuzzlePanel
也扩展JPanel
类。此类接收另一个JPanel(EightPuzzle
)并附加您可能需要的任何其他按钮。JFrame
的Main类,然后将EightPuzzlePanel
附加到它(它应该包含另一个面板和其他按钮)。答案 1 :(得分:0)
对于鼠标和键,您需要设置一些动作侦听器。
对于这个问题,你可以使用一维数组。只要您在阵列中存储了9个部分,就可以使用layout manager
将它们放在正确的位置 - 然后遍历数组很简单。