【问题标题】:Creating a 20x20 grid JPanel (JPanels in each grid box) recursively but reference each box?递归创建 20x20 网格 JPanel(每个网格框中的 JPanel)但引用每个框?
【发布时间】:2014-03-08 03:25:00
【问题描述】:

这个问题听起来很糟糕,对此我深表歉意。

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

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

我的想法正确吗?无论如何我都会继续它,但也许一些指针会有所帮助,因为我还是 Java 的新手。或者我可以使用另一种方法吗?有人告诉我放弃 swing 并转向 JavaFX(即使它实现了 swing),因为它的用途更加广泛,但我还没有准备好走那么远。

谢谢!

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

【问题讨论】:

    标签: java swing


    【解决方案1】:

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

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

    具有给定特定输入的方法(例如 18x9)

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

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

    【讨论】:

      猜你喜欢
      • 2019-08-14
      • 1970-01-01
      • 2018-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-03
      相关资源
      最近更新 更多