2013-05-06 84 views
1

根据他们的位置,我有一组绘制棋盘式棋盘的JPanel,其中一些JPanel上有黑色或黄色棋子。我希望能够明显移动这些作品。有没有办法通过切换它们在数组中的位置来做到这一点?我尝试使用基本的交换方式,我在其中创建一个tmp并切换..但没有工作..任何帮助,非常感谢。我可以在JPanel数组中切换JPanel的位置吗?

交换试验:

JPanel tmp = board[4][3]; 
    board[4][3] = board[2][7]; 
    board[2][7] = tmp; 

回答

0

您是否尝试过重新绘制整个帧?

我不知道你做了什么工作,你期望的那样。如果它不,你可能想尝试创建一个方法addComponents(),你会(明显:))添加框架中的所有组件。

当将需要改变通话的removeAll(),再次拨打addComponents(),然后确认()和重绘():)。

1

在屏幕上的一些JPanel的视觉位置不关联到其在一些阵列(在存储器中即位置)的位置。

你可以...阵列的位置。像你描述和另外交换视觉位置(通过getLocation()/setLocation()

  • 交换

  • 将这两个阵列位置和视觉位置不变,但交换状态(即交换背景颜色左右)。

1

其中一些JPanels的对他们的黑色或黄色片,根据他们的位置。我希望能够以明显搬完件..

  1. 使用不透明的JLabel为背景,为您的棋盘。
  2. 使用图标来表示棋子。
  3. 将图标从标签移动到标签,而不是尝试交换背景组件。