gpt4 book ai didi

java - 如何在 Java 中暂停 Swing?

转载 作者:行者123 更新时间:2023-12-01 12:06:08 26 4
gpt4 key购买 nike

  • 我有一个名为 MainProgram.java 的主 Java 程序
  • MainProgram.java 的成员为 JFrame MyFrame
  • 框架 MyFrame 中有一个名为 MyPanel 的 JPanel
  • 我已经重写了 MyPanel 的 PaintComponent 来绘制图像。

MainProgram.java不断从视频文件中获取提要并调用MyPanel的paintComponent。

我想要做的是让程序等待,直到我按 Enter 键。只有当我按下 Enter 键时,才会从视频中获取下一帧并显示。

  1. Thread.sleep我在很多地方都看到不能使用,所以它无法监听key按。

  2. 无法使用计时器,因为我没有计时任何东西。

我使用的肮脏的解决方法是

boolean x = false;
.
.
.
while(x==false);
.
.
.
onKeyPressed()
{
x=true;
//get frame from video
//call paintComponent
x=false;
}

谁能给个好的解决办法吗?

最佳答案

使用 SwingWorker 收集 doInBackground() 实现中的每个图像帧, publish()框架可用时,并将它们添加到 List<BufferedImage>关于 event dispatch thread在您实现 process() 时。您可以浏览 List<BufferedImage>如图here对于 List<String> .

关于java - 如何在 Java 中暂停 Swing?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27582923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com