2011-02-02 2 views
2

Я создал приложение поворота, которое по существу будет использовать селен для мониторинга значений полей, отображаемых на веб-сайте, и регистрации их результатов в файл. Причина, по которой я использую графический интерфейс swing, - позволить пользователям легко вводить поля, которые они хотят отслеживать, добавляя их в JList.Управление селеном через графический интерфейс Swing

Все работает нормально, но когда я нажимаю кнопку «Начать мониторинг» (которая создает селеновую нить и запускает ее), поток селена полностью берет на себя и не позволяет взаимодействовать с графическим интерфейсом swing.

Я бы хотел, чтобы кнопка на графическом интерфейсе Swing «Stop Monitoring» остановила селен, но это невозможно, поскольку я не могу взаимодействовать с графическим интерфейсом swing во время работы селена.

Заранее спасибо

+0

Я пытаюсь сделать что-то подобное. не могли бы вы дать мне указатель, как интегрировать экземпляр firefox с контролируемым селеном в swing gui? – Alp

ответ

3

Вашего код Селена блокировка EDT или событие диспетчерской темы, основной поток Swing, для взаимодействия с пользователем и GUI живописи. Решение состоит в том, чтобы вызвать селеновый код в фоновом потоке, например, с помощью объекта SwingWorker. Вы можете узнать больше о том, как это сделать в учебнике SwingWorker: Concurrency in Swing

После того, как вы это исправили, вы сможете получить доступ к вашему «остановленному мониторингу» JButton.

+0

Вау, большое вам спасибо, все работает сейчас! :) – Steven

+0

Добро пожаловать! Удачи вам в вашем проекте! –

Смежные вопросы