Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将按钮连接到棋盘游戏中的2d阵列_Java_Swing - Fatal编程技术网

Java 将按钮连接到棋盘游戏中的2d阵列

Java 将按钮连接到棋盘游戏中的2d阵列,java,swing,Java,Swing,所以我一直在制作一款棋盘游戏(Reversi)。我的游戏有一个二维enum数组(白黑无)创建为一个板,从二维数组中读取信息并将其转换为jbuttonsgui。现在,我的问题是,如何将这些按钮连接到2d阵列?如何确定单击了哪个按钮,以及2d数组中的哪个枚举应该更改。我一直在考虑解决方案,我找到了一些可能可行的方法。但我想知道哪种方法最快、最有效 创建另一个包含JButtons的二维数组。在actionListener中,循环执行JButtons 2d数组中的每个JButton。更改enum boa

所以我一直在制作一款棋盘游戏(Reversi)。我的游戏有一个二维enum数组(白黑无)创建为一个板,从二维数组中读取信息并将其转换为jbuttonsgui。现在,我的问题是,如何将这些按钮连接到2d阵列?如何确定单击了哪个按钮,以及2d数组中的哪个枚举应该更改。我一直在考虑解决方案,我找到了一些可能可行的方法。但我想知道哪种方法最快、最有效

  • 创建另一个包含JButtons的二维数组。在actionListener中,循环执行JButtons 2d数组中的每个JButton。更改enum board与JButtons的行/列相关的值

  • 创建JButton时,使用setName方法,例如myButton.setName(“2;4”),它引用板阵列(第2行第4列),并在actionListener中对其进行解密

  • 创建扩展JButton的新类,该类将具有一个附加属性,即按钮的状态(白色、黑色、无),并创建该类的二维数组而不是枚举


  • 请告诉我每个解决方案的优缺点,并请告诉我大多数开发人员用来做这些事情的最佳(不是这3个)解决方案。

    您需要确定,但这是O(1)。@Arc676这个问题对程序员来说不太合适-很快就会被否决并在那里结束,请参阅推荐阅读:我在#2中使用actionCommand而不是name。解码内容的成本不高。正如@trashgood提到的,它是O(1)