Создание JFrame в новой теме (new messageloog) - PullRequest
0 голосов
/ 31 декабря 2010

Привет, я пытаюсь создать несколько JFrames, но я хочу, чтобы у каждого был свой поток (цикл сообщений), поэтому, когда один JFrame зависает, другие будут продолжать работать

Я пытался создать каждый jframe из разныхПотоки, но они все еще работают в потоке "AWT-EventQueue-0".

Я пришел из точечного фона.поэтому, когда я хочу сделать этот сценарий в приложении winForms, я обычно вызываю Application.run(new form()) из новой темы

Можете ли вы сказать мне, как это сделать в Java?

заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 31 декабря 2010

В Java есть только поток пользовательского интерфейса, независимо от того, сколько кадров вы открываете.Я бы посоветовал вам выполнить длительную операцию в потоке.

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

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

Надеюсь, это поможет.

1 голос
/ 31 декабря 2010

Прочтите раздел из учебника по Swing на Параллельность , чтобы понять, как работает Поток отправки событий.Все обновления компонентов GUI должны выполняться на EDT.Если у вас есть долгосрочные задачи, вы можете использовать SwingWorker или отдельный поток вместе с SwingUtilities.invoke (...) позже, чтобы добавить код в EDT.

0 голосов
/ 31 декабря 2010

Создать новый поток для каждого сгенерированного JFrame.Запишите переменные Thread и передайте их в свой Runnable.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...