在JFrame中从一个位置移动到另一个位置的标签或任何组件

时间:2012-11-27 07:46:34

标签: java swing jframe jlabel event-dispatching

我正在尝试移动标签/图标&使用setLocation方法从一个地方到另一个地方的按钮但由于某种原因,对象正在移动但不在运动中。所以,如果有人知道如何做这件事,请告诉我。

如何在JFrame中创建从一个地方移动到另一个地方的标签或任何组件?

下面我展示了代码:

jl = JLabel
jf = JFrame

    public void actionPerformed(ActionEvent e) 
    {
        if(e.getSource()==jbtn)
        {
            for(int i=0;i<=30;i++)
            {
                jl.setLocation(100,100+i);
                jl.repaint();
                jf.repaint();
                try
                {
                    Thread.sleep(50);
                }
                catch(Exception ae)
                {
                    ae.printStackTrace();
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:4)

基本上,您正在阻止负责绘制更新的线程(事件调度线程)

您可能希望阅读java timer change delay with buttonDoes displaying Java GUI requires some special treatment?来展示动画,并讨论EDT的重要性。