我正在使用 java.swing 构建一个应用程序。我有一个主面板、一个网格面板(显示方块)和一个细节面板(显示每个方块的细节并让您编辑它们)。正方形也是对象。
我有主面板监听鼠标点击,如果你点击网格面板,网格面板将通过它的正方形 ArrayList 并找到你点击的正方形,然后返回它。这个正方形由主面板传递到显示面板,然后将其局部变量 currentSquare 设置为等于传入的正方形。
我感到困惑的地方是我可以编辑 currentSquare,并且正在编辑 ArrayList 中的相应方块!我可以更改 currentSquare 的公共变量或使用 setter 来更改它们,但无论如何效果都是一样的。虽然这是我想要发生的效果,但我的印象是我必须有某种 getter/setter 来将编辑的 currentSquare 带回 ArrayList 并替换旧的正方形。
我目前关于为什么会发生这种情况的理论是它与 Java 的引用有关,因为正方形是一个自定义对象,但我不确定情况是否如此或导致这种情况的原因。最终,我想知道我做了什么导致这种情况,以及将其保持原样或在此基础上构建是否是好的/好的编程实践(如果我确实以这样的方式构建它,它会破坏的可能性有多大)。