用户定义的函数 - for循环(JAVA)

时间:2012-11-26 11:07:19

标签: java

我的问题很直接。 我在一个简单的应用程序中做了一个简单的应用程序,当我点击一个按钮时,文本的x坐标表示'@'不断变化20。 下面是代码: -

int x;

private void wActionPerformed(java.awt.event.ActionEvent evt) 
{                                  
    x=x+20;       
    q.setLocation(x, 0);    
}

每次单击j按钮(w)时,此代码只需将jlabel(q)向右移动20个坐标。 现在我想要的是,当我单击按钮时只有ONCE然后JLabel的位置应该继续增加其x坐标20,直到它达到特定的x坐标200。 我尝试使用for循环: -

private void wActionPerformed(java.awt.event.ActionEvent evt)
{
    for(x=0;x<201;x=x+20)
    {
        q.setlocation(x,0);
    }  
}

但是当我点击按钮时,jlabel会在每20个坐标后直接移动到200 x坐标而不停止...请帮忙.. 问候, 抛油环

1 个答案:

答案 0 :(得分:2)

上述问题是Swing正在调用增量器,并且只有在增量功能完成后才执行刷新。相反,您需要启动一个单独的线程来执行此动画,并在每次增量后让Swing更新。

查看SwingUtilities.invokeLater()SwingWorker课程。这是a tutorial on SwingWorker