以递归方式创建20x20网格JPanel(每个网格框中的JPanels),但是引用每个框?

时间:2014-03-07 18:05:02

标签: java swing

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

简单地说,我试图创建一个20x20'网格'的正方形,这些正方形全黑或全白,模仿像素。我知道如何以递归方式创建网格,因此我没有400个变量(如同逐个添加400个JPanel一样),我只是不确定如何在以后引用特定的框来更改颜色状态。

我正在考虑可能有一个白色背景,并在其上绘制一个网格线(在jPanel上)。然后创建另一个具有20x20网格布局的JPanel并且具有给定某个输入(例如18x9)的方法,它将在该网格处添加黑色jpanel。

我的想法是否正确?无论如何我会继续使用它,但也许一些指针会有所帮助,因为我还是Java的新手。或者我可以使用另一种方法吗?我被告知要转移摆动并转移到JavaFX上(尽管它实现了摆动),因为它更通用,但我还没准备好走那么远。

谢谢!

编辑:我想我应该提到这不会是每个人说的“可编辑”输出。用其他词来说它会画一次。所以我不需要担心以后隐藏面板,因为我只是开始一个新的输出。

1 个答案:

答案 0 :(得分:0)

  

我只是不确定以后如何引用特定的盒子来改变颜色状态。

只需将您在网格中添加的所有组件引用到ArrayList。

  

有一个给定某个输入(例如18x9)的方法

因此,要引用该组件,您将获得要在ArrayList中使用的索引:

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