簡體   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