Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.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 递归创建20x20网格JPanel(每个网格框中的JPanel),但引用每个框?_Java_Swing - Fatal编程技术网

Java 递归创建20x20网格JPanel(每个网格框中的JPanel),但引用每个框?

Java 递归创建20x20网格JPanel(每个网格框中的JPanel),但引用每个框?,java,swing,Java,Swing,这个问题听起来很糟糕,我为此道歉 简单地说,我试图创建一个20x20的方格,要么全黑要么全白,模仿像素。我知道如何递归地创建网格,因为我没有400个变量,就像一个接一个地添加400个JPanel一样,我只是不确定以后如何引用特定的框来更改颜色状态 我想在jPanel上画一个白色背景和一条网格线。然后创建另一个带有20x20网格布局的JPanel,并拥有一个方法,该方法给定一个特定的输入,例如18x9,它将在该网格上添加一个黑色JPanel 我的想法正确吗?不管怎样,我都会继续进行,但也许一些指针

这个问题听起来很糟糕,我为此道歉

简单地说,我试图创建一个20x20的方格,要么全黑要么全白,模仿像素。我知道如何递归地创建网格,因为我没有400个变量,就像一个接一个地添加400个JPanel一样,我只是不确定以后如何引用特定的框来更改颜色状态

我想在jPanel上画一个白色背景和一条网格线。然后创建另一个带有20x20网格布局的JPanel,并拥有一个方法,该方法给定一个特定的输入,例如18x9,它将在该网格上添加一个黑色JPanel

我的想法正确吗?不管怎样,我都会继续进行,但也许一些指针会有所帮助,因为我对Java还是新手。或者有没有其他方法可以替代?我被告知要放弃swing,转而使用JavaFX,尽管它实现了swing,因为它更通用,但我还没有准备好走那么远

谢谢

编辑:我想我应该提到的是,这不会是一个“可编辑”的输出。换言之,它只会画一次。所以我不需要担心以后会隐藏面板,因为那时我将开始一个新的输出

我只是不确定以后如何引用特定的框来更改颜色状态

只需在ArrayList中保留对网格中添加的所有组件的引用

具有给定特定输入的方法,如18x9

因此,要引用该组件,您需要在ArrayList中使用索引:

int index = (18 * 9) - 1;
JPanel panel = list.get(index);
panel.setBackground(...);