Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.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制作3×3的二维数组_Java_Arrays_Swing - Fatal编程技术网

用java制作3×3的二维数组

用java制作3×3的二维数组,java,arrays,swing,Java,Arrays,Swing,您好,我只是在处理阵列,在3×3网格中创建二维阵列时,我遇到了一些问题 下面是我用9个按钮创建的1D arrray示例,它可以很好地工作,因为它显示了所有9个按钮 frame.setLayout(new GridLayout(3,3)); JButton[] buttons = new JButton[9]; for (int i = 0; i < buttons.length; i++){ buttons[i] = new JButton();

您好,我只是在处理阵列,在3×3网格中创建二维阵列时,我遇到了一些问题

下面是我用9个按钮创建的1D arrray示例,它可以很好地工作,因为它显示了所有9个按钮

    frame.setLayout(new GridLayout(3,3));
    JButton[] buttons = new JButton[9];

    for (int i = 0; i < buttons.length; i++){
        buttons[i] = new JButton();
        frame.add(buttons[i]);
        buttons[i].setText(".");
还有可能给每个按钮一个名称,例如,代替按钮[0],可能有按钮1,等等

谢谢。

您的第二个for循环具有for int j=0;j<0.5米长;i++…它应该是j++,而不是i++

另外,正如turbo所指出的,一个3x3的网格不够大,不能容纳12个按钮,我想你指的是4x3或3x4?。另外,不必将i和j都与buttons.length进行比较,您应该有两个单独的变量来分别与buttonsWidth、buttonsLength进行比较;buttonsX、buttonsY等..

您的第二个for循环具有for int j=0;j<0.5米长;i++…它应该是j++,而不是i++

另外,正如turbo所指出的,一个3x3的网格不够大,不能容纳12个按钮,我想你指的是4x3或3x4?。另外,不必将i和j都与buttons.length进行比较,您应该有两个单独的变量来分别与buttonsWidth、buttonsLength进行比较;buttonsX、buttonsY等..

您在这里遇到了一个错误:

for (int j = 0; j < buttons.length; i++){
这里有一个bug:

for (int j = 0; j < buttons.length; i++){


看看这些循环。这两个组件中都有i++。如果希望组件具有名称,请使用setName。。setText是按钮中显示的文本,因此请记住3x3 2D数组不够大,无法容纳12个按钮。如果使用setName,则可以使用getName获取按钮名称。您仍然需要从数组中引用它们。或者,您可以将一个按钮声明为JButton button0=new button,然后将其作为buttons[0]=button0添加到数组中。然后,您可以使用一个单独的引用,但您需要单独声明它们。如果您使用数组,则。。但您可以将按钮彼此区分开来,例如,您有按钮[0][0]。getName.equalsbutton1然后您就知道按钮是什么了,如果您不想这样做,您仍然可以将按钮而不是数组存储在地图中。请查看循环。这两个组件中都有i++。如果希望组件具有名称,请使用setName。。setText是按钮中显示的文本,因此请记住3x3 2D数组不够大,无法容纳12个按钮。如果使用setName,则可以使用getName获取按钮名称。您仍然需要从数组中引用它们。或者,您可以将一个按钮声明为JButton button0=new button,然后将其作为buttons[0]=button0添加到数组中。然后,您可以使用一个单独的引用,但您需要单独声明它们。如果您使用数组,则。。但是您可以将按钮彼此区分开来,例如您有按钮[0][0]。getName.equalsbutton1然后您知道按钮是什么,如果您不想这样做,您仍然可以将按钮而不是数组存储在MapHi中,谢谢您的回复。将i++更改为j++将在3×3网格中创建36个按钮。我已将数组的大小更改为9个按钮,现在可以正常工作。但是,您能告诉我如何为每个按钮命名,例如button1 button2 button3。。。。Button9使用按钮[0]。setNamebutton0-类似于SetExt。因此,如果使用setName,我是否能够引用具有给定名称的按钮,或者是否需要从数组中调用它们,如;按钮[0]。您好,谢谢您的回复。将i++更改为j++将在3×3网格中创建36个按钮。我已将数组的大小更改为9个按钮,现在可以正常工作。但是,您能告诉我如何为每个按钮命名,例如button1 button2 button3。。。。Button9使用按钮[0]。setNamebutton0-类似于SetExt。因此,如果使用setName,我是否能够引用具有给定名称的按钮,或者是否需要从数组中调用它们,如;按钮[0]。叶,很抱歉3乘3只能容纳9个按钮谢谢。叶,很抱歉3乘3只能容纳9个按钮谢谢。
for (int j = 0; j < buttons.length; i++){
for (int j = 0; j < buttons.length; j++){
int number = 0;
for (int i = 0; i < buttons.length; i++){
    for (int j = 0; j < buttons[0].length; j++){  //watch here for additional index [0] in length (it is size of "second dimension")
        buttons[i][j] = new JButton();
        frame.add(buttons[i][j]);
        buttons[i][j].setText("Button" + number);
        number++; //in separate line for clarity
    }
}