Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Использование Action


Автор: gray_k 25.8.2004, 14:27
У предположим я объявил:
Код

Action myAction1 = new AbstractAction() {
 public void ActionPerformed(ActionEvent event) {
   /*тут мой код*/
 }
};
Action myAction2 = new AbstractAction() {
 public void ActionPerformed(ActionEvent event) {
   /*тут мой код*/
 }
};



Затем я компонентам JButton задаю этот Action
Код
btn1.setAction( myAction );
btn2.setAction( myAction2 );


Можно ли теперь сделать так, чтобы при нажатии на Enter на нужном (не кнопке) компоненте срабатывал myAction1, а если, к примеру нажат Tab, то срабатывал myAction2.

Про то, чтобы вынести код из ActionPerformed в отдельные методы я уже думал, но может есть другой путь.

Позволю себе еще вопрос (прости меня модератор smile.gif ).
Как програмно вызвать срабатывание Action?

Автор: AntonSaburov 25.8.2004, 15:05
Я так понимаю, что хочется сделать кнопку по умолчанию.
Можно посмотреть в сторону
JDialog.getRootPane() и JRootPane.setDefaultButton(javax.swing.JButton)

Автор: Domestic Cat 25.8.2004, 15:53
Цитата(gray_k @ 25.8.2004, 05:27)
Можно ли теперь сделать так, чтобы при нажатии на Enter на нужном (не кнопке) компоненте срабатывал myAction1, а если, к примеру нажат Tab, то срабатывал myAction2.


public void setMnemonic(char mnemonic)

Цитата(gray_k @ 25.8.2004, 05:27)
Как програмно вызвать срабатывание Action?


public void doClick()

http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/AbstractButton.html

Автор: gray_k 25.8.2004, 16:03
Цитата
setMnemonic(char mnemonic)

А где взять кода клавиш Enter, Esc, Shift и т.п?

Автор: Domestic Cat 25.8.2004, 16:07
Здесь

http://java.sun.com/j2se/1.4.2/docs/api/java/awt/event/KeyEvent.html

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