在屏幕上移动面板

时间:2013-03-09 20:52:04

标签: java swing

我只是想通过点击它一点一点地在屏幕上移动一个面板,我也想通过点击一个特定的按钮知道如何做到这一点?

private void ActorMouseClicked(java.awt.event.MouseEvent evt) {

    float x =Actor.getAlignmentX();
    float y=Actor.getAlignmentY();
    x = x+1;
    Actor.setAlignmentX(x);
    System.out.println(x);
    invalidate();
    validate();
    repaint();     
   }

1 个答案:

答案 0 :(得分:3)

更改对齐方式不会移动组件。您需要调用组件的setLocation()方法来移动它。

您不需要invalidate(),valiate()或repaint(),Swing足够聪明,可以在组件位置发生变化时重新绘制组件。

按钮中的代码相同。您创建一个ActionListener,它具有对您要移动的组件的引用,然后更改其位置。

此外,要在面板上随机移动组件,您需要使用空布局。因此,您还将负责最初设置组件的边界。

这里有很多东西。如果您需要更多帮助,那么您需要发布一个SSCCE来向我们展示您到目前为止所做的工作。