问题标签 [javax.swing.timer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
398 浏览

java - 从用户那里获取输入小时分钟秒并以 hh:mm:ss 格式开始倒计时

我在启动计时器以及如何将数据放入日期时遇到问题。

这是我的代码:

使用Calendar将数据放入日期并启动计时器是否正确?

0 投票
0 回答
205 浏览

java - 使用 javax.swing.timer 定期更新 JLabel 不稳定(波动)

我想以大约 300 毫秒的恒定速率更新 JLabel。目前我正在使用以下代码部分来执行此操作:

问题是使用此代码会导致 JLabel (centerLabel) 的非恒定更新。这意味着两个“新”标签之间的时间不是恒定的(您可以用肉眼看到),并且由于更新之间的时间太短,一些字符串似乎被跳过了。我已经尝试了几种不同的方法,例如使用 invokeLater 或 shedledExecutorService 但似乎都有同样的问题。我的问题是,这是否是正确的方法,如果从一开始就为这项任务使用 JLabel 方法是一个坏主意?如果是这样,以平滑控制的方式(有点像视频)一个接一个地显示字符串的好方法是什么。

非常感谢,任何帮助和建议都非常感谢。

编辑:

我尝试使用以下代码而不是迭代器,尽管我不知道这是否更快:

问题仍然存在,所以我尝试直接访问列表

但这仍然没有解决问题。

第二次编辑:

这是一个演示问题的可运行示例:

第三次编辑

我听说前面的例子有几个问题。所以我试图修复它们,我希望这个例子更好

但不知何故,我的机器上仍然存在问题。我没有运行很多程序,即使我关闭所有正在运行的程序,问题也不会改变。我看不到的代码中是否还有一些问题?

第四次编辑

添加 centerLabel.repaint() 并没有改变行为。我仍然看到标签发生变化,但频率不稳定。环境信息:

操作系统:Ubuntu 14.04 LTS,64 位

处理器:Intel Core™ i5-2430M CPU @ 2.40GHz × 4

内存:5,7 GiB

Java信息:

java版本“1.8.0_102”

Java(TM) SE 运行时环境 (build 1.8.0_102-b14)

Java HotSpot(TM) 64 位服务器 VM(内部版本 25.102-b14,混合模式)

0 投票
0 回答
26 浏览

java - 我怎样才能更好地实现我的键绑定和摆动计时器?

嘿,谢谢你看我的帖子。整个夏天我一直在做一个充满激情的项目,这个问题已经出现了。首先,这可能算作一个重复的问题,但我一直在寻找这个站点和 Oracle 的修复程序,但找不到一个,或者更可能我只是不理解我正在使用的代码。一个主要的帮助是一艘充满鳗鱼的气垫船来解决这样的问题

我想要一个盒子, , 用, , ,键在一个, 另一个,JPanel周围移动。首先,我通过扩展创建了自己的面板。从那里我设法让运动正常工作,但由于键绑定的工作方式而出现口吃,我读到添加一个摆动计时器会改善口吃。我最初的猜测是我没有正确实施某些事情,或者对我正在做的事情知之甚少,无法看到我的错误。我还尝试设置一面旗帜以帮助持续移动。没有错误消息,还有一些我需要实现的东西,比如防止越界。这是我所拥有的:JFrameJPanelwasdJPanel

我试图让我的代码最小化,这就是我的目标。

是的,有更有效的编码方法,比如使用枚举来帮助设置我的键绑定,但我的编码理念是:

  • 弄清楚我想做什么,让它工作(通常使用我所说的蛮力代码)
  • 了解它为什么起作用
  • 让它变得更好,让它变得漂亮。

我处于理解阶段。另一个非常有效的观点是为什么我不使用 Graphics,就像在 Graphics g.draw(blah) 中一样。TBH 我不知道。我无法让它工作,在我提出涉及它的问题之前,我需要花更多的时间来处理它,因为在这里要求某人教我如何使用图形似乎不合适。

所以除了像我应该使用的那样使用图形之外,我怎样才能更好地实现我的键绑定和摆动计时器。我在想我使用setLocation可能是一个问题,而不是使用 graphics.repaint 或其他东西,但setLocation调用 repaint 所以我认为这不是主要问题,但可能仍然是一个问题。我为文字墙道歉,但我想尝试彻底,所以......

TL:博士;我正在JPanel使用键绑定和摆动计时器进行自定义移动。运动结结巴巴,我也不希望它。在发布和休息后,我会将四个移动布尔值合并为一个,因为这也可能无济于事,并为方向添加一个状态变量并尝试整理我的代码。感谢您查看我的代码,如果您这样做了,欢迎提供任何帮助。我喜欢学习如何编码和阅读你告诉我我懒得搜索的任何数量的参考资料。

如果您想完全运行我正在运行的内容,这也是我的主要内容,PlayerPanel并且Driver具有 main 方法的类是我正在使用的仅有的两个文件。

0 投票
2 回答
83 浏览

java - 从 ActionListener 调用时,JFrame 未正确显示


以上是我的问题的最小,可重现的示例。
从 ActionListner 调用 Progress JFrame 时,JFrame 无法正确显示。我得到一个黑色的 JFrame,一秒钟后我得到了带有完整进度条的最终 JFrame。但如果我new Progress()直接打电话,它可以正常工作(即看到进度条填满)。
我发现在 UI 线程中创建新线程无法绘制 Frame。我应该使用Swing.Timer.
我不知道该怎么做Swing.Timer。任何其他方法都值得赞赏。