Java 如何在不重新绘制JLabel的情况下进行设置位置

Java 如何在不重新绘制JLabel的情况下进行设置位置,java,components,label,repaint,frames,Java,Components,Label,Repaint,Frames,我想给出组件在时间上移动的效果,但是当我设置位置时,标签被重新绘制,这使得它为每个组件的每个移动重新绘制,因此对于每个移动,组件被放置在彼此的顶部,时间变得混乱。 我要做的是移动组件而不重新绘制窗口、标签,然后在移动所有组件后,进行一次始终显示正确帧的重新绘制。(谷歌翻译) public void run(){//此方法每秒运行60次 如果(objects.size()>0){ 对于(int i=0;我至少需要一个例子来解释发生了什么。更好地关注这个问题的一个特定部分也会有所帮助。这就是Swin

我想给出组件在时间上移动的效果,但是当我设置位置时,标签被重新绘制,这使得它为每个组件的每个移动重新绘制,因此对于每个移动,组件被放置在彼此的顶部,时间变得混乱。 我要做的是移动组件而不重新绘制窗口、标签,然后在移动所有组件后,进行一次始终显示正确帧的重新绘制。(谷歌翻译)

public void run(){//此方法每秒运行60次
如果(objects.size()>0){

对于(int i=0;我至少需要一个例子来解释发生了什么。更好地关注这个问题的一个特定部分也会有所帮助。这就是Swing的工作方式。当您更改组件的位置时,请重新绘制()方法,并向
重新绘制管理器
发出请求。
重新绘制管理器
随后将多个重新绘制请求合并到一个组重新绘制中,以便同时绘制所有组件。请参阅:获取完整的工作示例。非常感谢,是否有替代方案?
    public void run(){   //this method runs 60 times per second
        if(objects.size() > 0){
            for(int i=0; i<objects.size(); i++){
                objects.get(i).run(); //moves my JLabels with setLocation
            }
        }
        repaint();
    }