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


Автор: PashaOvechkin 18.12.2008, 13:32
Отлoвить нажатие мыши вне компонента.

http://forum.vingrad.ru/topic-173760.html

У меня аналогично, но  не календарь, а JTextArea...

FocusListener() почти хорош, но  не совсем то :(
 

Автор: PashaOvechkin 19.12.2008, 18:21
Проблема решена без особых хитростей. Если актуально  - пишите расскажу

Автор: zhail 19.12.2008, 18:24
Интересно, раскажи плз.

Автор: PashaOvechkin 19.12.2008, 18:47
Первоначальная задача была создать табовой панели (JTabbedPane ) возможность переименовывать название таба.
В хедере таба лейбл с названием. Правый клик мыши - > Переименовать. Меняю лейбл на текстовое поле, ввожу новое название - ЕНТЕР, или клик в любом другом месте - 
и текстовое поле опять становиться лейблом, с новым содержымым(названием)...

Так вот - текстовое поле содержит 2 слушателя : 

1) KeyListener - при нажатии ЕНТЕР - меняем текстовое поле на лейбл.
2) FocusListener  - при потере фокуса  меняем текстовое поле на лейбл.

Но при етом нуно добавить во врейм, который содержит JTabbedPane (не только во фрейм, во все места куда можно кликнуть мышкой), слдующее : 

Код

this.addMouseListener( new MouseAdapter() {
            @Override
            public void mousePressed( MouseEvent e ) {
                requestFocus();
            } 
        });


Кликаем на другой фрейм даной апликации - фокус теряется сам по себе. 
Кликаем на любое другое место вне апликации - фокус так же тераеться.

всё.

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