我的问题很直接。 我在一个简单的应用程序中做了一个简单的应用程序,当我点击一个按钮时,文本的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坐标而不停止...请帮忙.. 问候, 抛油环
答案 0 :(得分:2)
上述问题是Swing正在调用增量器,并且只有在增量功能完成后才执行刷新。相反,您需要启动一个单独的线程来执行此动画,并在每次增量后让Swing更新。
查看SwingUtilities.invokeLater()和SwingWorker课程。这是a tutorial on SwingWorker。