1

我有一个我需要在所需坐标处JPanel添加一堆s 的地方。JLabel这些JLabels 将分配给它们的键侦听器,这些侦听器将使用箭头键确定新位置。

更具体地说,当只有一个时,我知道该怎么做,JLabel但每当我放更多时,事情就会一团糟。当我使用箭头键时,第一个JLabel动作但所有其他动作都JLabel消失了。

任何人都可以给我一些提示,让我编写一种方法来将 aJLabel放在特定坐标中,并在以后使用箭头键移动它们而不会使其他JLabels 消失吗?

非常感谢提前

4

2 回答 2

1

您可以尝试使用 JDesktopPane 或 JLayeredPane,它的工作原理与 JPanel 相同,但您不会使用布局,使用这些您将使用 Bounds,您总是必须像这样设置 jlabel 的边界。

JLabel label = new JLabel("Hello");
label.setBounds(0, 0, 100, 20);
//label.setBounds(x, y, width, height);
pane.add(label)

如果您需要移动该标签,那么您可以使用类似的东西

int xx = label.getBounds().getX();
int yy = label.getBounds().getY();
int ww = label.getBounds().getWidth();
int hh = label.getBounds().getHeight();

//to the right 10 units
xx+=10;
label.setBounds( xx, yy, ww, hh );
于 2012-05-16T19:30:39.357 回答
0

我假设您正在使用repaint()更新 UI。顺便说一句,你在调用哪个组件repaint()

于 2012-05-15T03:58:25.210 回答