我的问题很直接。 我在 neatbeans 中制作了一个简单的应用程序,当我单击一个按钮时,文本的 x 坐标表示“@”不断变化 20。 这是代码:-
int x;
private void wActionPerformed(java.awt.event.ActionEvent evt)
{
x=x+20;
q.setLocation(x, 0);
}
每次我单击 jbutton (w) 时,这段代码只是将 jlabel (q) 向右移动 20 个坐标。 现在我想要的是,当我只单击按钮一次时,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 直接移动到 200 x 坐标而不会在每 20 个坐标后停止......请帮忙...... 问候, 投石机
最佳答案
上面的问题是 Swing 正在调用您的增量器并且仅在您的增量函数完成后才执行刷新。相反,您需要启动一个单独的线程来执行此动画,并让 Swing 在每次增量后更新。
查看 SwingUtilities.invokeLater()和 SwingWorker类(class)。这是 a tutorial on SwingWorker .
关于java - 用户定义的函数-for 循环 (JAVA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13563577/