繁体   English   中英

在新线程中创建JFrame(新messageloog)

[英]Creating JFrame in a new Thread(new messageloog)

嗨,我正在尝试创建多个JFrame,但我希望每个JFrame都有其自己的线程(消息循环),因此当一个JFrame冻结时,其他JFrame将继续工作

我试图从不同的线程创建每个jframe,但是它们仍在“ AWT-EventQueue-0”线程中工作。

我来自dotnet背景。 因此,当我想在winForms应用程序中执行此方案时,通常会从新线程调用Application.run(new form())

您能告诉我如何在Java中执行此操作吗?

提前致谢!

Java中只有UI线程,无论打开多少帧。 我建议您在线程中执行长时间运行的操作。

public void actionPerformed(ActionEvent e)
{
    new Thread(new FrameRunnable()).start();
}

public class FrameRunnable implements Runnable
{
    public void run()
    {
        // Do stuff here
    }
}

希望这会有所帮助。

阅读Swing 并发教程中的这一节,以了解事件调度线程是如何工作的。 GUI组件的所有更新必须在EDT上完成。 如果您的任务运行时间长,则可以稍后使用SwingWorker或单独的线程以及SwingUtilities.invoke(...)将代码添加到EDT。

为每个生成的JFrame创建一个新线程。 记下您的Thread变量,并将其传递给您的Runnable。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM