Как мне закрыть и перезапустить поток Swing JFrame - PullRequest
0 голосов
/ 03 августа 2011

Основной кадр моего приложения запускает поток JFrame:

IBM1622GUI cardReadPunchGUI = new IBM1622GUI(); // instantiate
Thread cardReadPunchThread = new Thread(cardReadPunchGUI); // alloc thread
cardReadPunchThread.start(); // call thread's run() method

Позже основной кадр должен "уничтожить" IBM1622GUI (как часть "перевода периферийного устройства в автономный режим"), а еще позже - восстановить экземплярэто - предположительно, используя ту же процедуру, что и выше.Что должен сделать основной фрейм, чтобы в основном вернуться в состояние до того момента, когда IBM1622GUI был впервые создан?

EDIT - я, вероятно, должен упомянуть, что IBM1622GUI, класс JFrame, разрабатывается с NetBeans как «Swing GUI»Form ", и, таким образом, существуют определенные ограничения на то, что я могу внести в исходный код.

Ответы [ 2 ]

2 голосов
/ 03 августа 2011

Звучит так, как будто вы хотите suspend() и resume() cardReadPunchThread. Хотя эти методы устарели, вы можете использовать подход, описанный в Примитив Java Thread Deprecation , для управления моделью. В качестве альтернативы, экземпляр javax.swing.Timer немного проще для stop() и start(), как предлагается здесь . Со стороны вида setVisible() может работать, в зависимости от вашего дизайна.

2 голосов
/ 03 августа 2011

Прочитайте это

Вы должны использовать этот стиль для инициализации JFrame.

IBM1622GUI cardReadPunchGUI = null;
SwingUtilities.invokeLater(new Runnable() {
    public void run() {
        cardReadPunchGUI = new IBM1622GUI();
    }
});

Когда вы хотите закрыть JFrame, здесь ужевопрос с ответами

(Редактировать по гл.: связанный поток SO очень длинный и извилистый, но сводится к простому использованию cardReadPunchGUI.dispose(). Это, фактически, удовлетворительно отвечает на мой вопрос,и я хотел бы отдать должное этому ответу, но я также хотел бы, чтобы эта записка была включена.)

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