Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Нажатие кнопки минимизированого окна.


Автор: ousatyy 29.10.2006, 16:45
Здравствуйте может мне кто поможет. У меня аплет имеет фрейм, который в свою очередь открывает модальное диалоговое окно. Как это окно програмно закрыть?

Я запускаю отдельный поток который отслеживает висит ли для аплета диалог. Если да то ищу нужную кнопку на диалоге, беру ее координаты и с помощью класса Robot перемещаю на нее миш и програмно жму левую кнопку. Но есть ситуация когда окно на момент нажатия кнопки минимизировано, и мышка жмет на пустом поле, мучается мучается и останавливается. Диалог продолжает висеть. Диалоги и кнопки не чисто AWT-шние или Свинговские, потому dialog.destroy или button.isPressed вызвать не могу. Может как нибудь с помощью лисенеров или может максимизировать окно аплета? Помогите кто чем может. 
Спасибо.

Автор: powerOn 29.10.2006, 17:03
Не понял ничего.

Что за окно у апплета? Ты его скрыть/закрыть/максимизировать/минимизировать хочешь?

Вообще у JFrame есть методы setVisible(), setExtendedState(), dispose() которые управляют состоянием окна.

Автор: ousatyy 29.10.2006, 17:13
Сори за сумбурный вопрос.
У меня есть панель которая запускается в аплет вьювере(не спрашивайте почему). Эта панель порождает модальное диалоговое окно, которое нужно автоматически закрыть. Я закрывал его с помощью класс Robot (брал кординаты кнопки "cancel" ставил туда мыш и эмулировал нажатие кнопки) но теперь аплетвьювер минимизируется перед появлением этого диалогового окна. Хотя я отслеживаю это модальное окно и нахожу кнопку, старым способом я ее нажать не могу. Потому что мыш кликает н апустом месте где было это окно.
Я вижу такие решения.
1.Возвращать апплет вьювер в неминимизированое состояние и нажымать старым способом.
2.Как то иначе эмулировать нажатие кнопки.

Автор: ousatyy 29.10.2006, 17:39
Спасибо всем я уже придумал.

button.mousePressed(new MouseEvent(button, 1, 0, 0, 1, 1, 1, true, MouseEvent.BUTTON1));
button.mouseReleased(new MouseEvent(button, 1, 0, 0, 1, 1, 1, true, MouseEvent.BUTTON1));

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)