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

标签 java

我的问题很直接。 我在 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/

相关文章:

java - 无法在 webview 中使用 appium android 找到混合应用程序的 webelement

java - 使用自定义比较器查找数组列表的最大值

java - BufferedReader 给 Connection 重置?

Java-ws tomcat通过http调用方法?

java - "old code syndrome"的解决方案?

java - JVM 禁用特定类或方法的内联

java - readLine() 方法的问题

java - 为什么 Java 程序员喜欢将变量命名为 "clazz"?

java - SPOJ PALIN NZEC 错误

java - 无法在 Eclipse 中导出 Android 应用程序