我有一系列 JPanel 绘制棋盘式棋盘,其中一些 JPanel 上有黑色或黄色的棋子,根据它们的位置。我希望能够明显地移动这些碎片..有没有办法通过切换它们在阵列中的位置来做到这一点?我尝试使用创建 tmp 和 switch 的基本交换方式..但这没有用..任何帮助都非常感谢。
交换试验:
JPanel tmp = board[4][3];
board[4][3] = board[2][7];
board[2][7] = tmp;
我有一系列 JPanel 绘制棋盘式棋盘,其中一些 JPanel 上有黑色或黄色的棋子,根据它们的位置。我希望能够明显地移动这些碎片..有没有办法通过切换它们在阵列中的位置来做到这一点?我尝试使用创建 tmp 和 switch 的基本交换方式..但这没有用..任何帮助都非常感谢。
交换试验:
JPanel tmp = board[4][3];
board[4][3] = board[2][7];
board[2][7] = tmp;
根据他们的位置,其中一些 JPanel 上有黑色或黄色的碎片。我希望能够明显地移动那些碎片..
屏幕上某些 JPanel 的视觉位置与其在某个数组中的位置(即在内存中的位置)无关。
你可以...
如您所述交换阵列位置并另外交换视觉位置(通过getLocation()
/ setLocation()
)
保持数组位置和视觉位置不变,但交换状态(即交换背景颜色左右)。
您是否尝试过重新粉刷整个框架?
我不确定您所做的是否按预期工作。如果不是,您可能想尝试创建一个方法 addComponents() ,您将在其中(显然 :) )添加框架中的所有组件。
当需要更改时调用 removeAll(),再次调用 addComponents(),然后 validate() 和 repaint() :)。