java - 在 JFrame Java 中闪烁

标签 java swing concurrency java-2d

大家好我正在做一个线程来更新 JFrame 上的球所以我重新绘制屏幕...然后绘制球更新其位置..然后再次绘制屏幕...绘制球和相同的循环...这是代码

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
   Thread t = new Thread()
   {
     public void run()
     {
         while(true)
         {
             repaint();
             b2.update(ob,2);
             b2.paint(ob.getGraphics());

             b2.setT(b2.getT() + 1);
             try {
                 Thread.sleep(50);
             } catch (InterruptedException ex) {
                 System.out.println("Error in Sleeping");
             }

         }
     }
   };

   t.start();
}

但问题是我看不到球...屏幕的油漆总是覆盖球并且球就像在 Jframe 下一样..

最佳答案

如果您想在 Swing 中使用动画,推荐使用的类是 javax.swing.Timer 。此类允许您定期对事件调度线程执行操作。

关于java - 在 JFrame Java 中闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13779392/

相关文章:

java - JTable 在多个标题插入后更新列标题高度

java - 是否有必要对可能被单线程调度程序修改的字段使用 Java 同步?

java - Jsp/MySQL- 将 SELECT 查询的输出存储到字符串中?

java - 创建嵌入式节点时出现 ElasticSearch 异常

swing - GridBagLayout 多按钮+边框

java - 如何使一个窗口透明、可拖动并添加一些分层组件?

Java VSync 没有全屏窗口

scala - Twitter 的 Future.collect 不能同时工作 (Scala)

jakarta-ee - 如果有异步方法仍在运行,无状态 session 是否会被另一个线程使用?

Java 不会停止读取输入