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