Как узнать, какие команды действительны в getActionCommand () Swing? - PullRequest
1 голос
/ 23 марта 2011

Как узнать, какие команды доступны? Я попытался посмотреть в Java SDK, но ничего не нашел об этом.

Я могу думать только так:

class ButtonListener implements ActionListener {
  ButtonListener() {
  }

  public void actionPerformed(ActionEvent e) {
      System.out.println(e.getActionCommand());
  }
}

но я думаю, что эти значения должны быть жестко заданы в некоторой части фреймворка. Где я могу их найти?

Спасибо

EDIT

Взять в качестве примера следующий код, взятый из здесь :

public void actionPerformed(ActionEvent e) {
    if ("disable".equals(e.getActionCommand())) {
        ...
    }

    ...
 }

Автор сайта знал, что существует команда действия, которая была "отключена". Откуда он взял эту информацию?

Ответы [ 4 ]

1 голос
/ 23 марта 2011

Вы делаете это с помощью setActionCommand()

JButton jb = new JButton("MyButton");
jb.setActionCommand("MyButtonCommand");

EDIT:

Автор сайта получил "отключить" из этой строки кода

b1.setActionCommand("disable");
1 голос
/ 23 марта 2011

Возможно, вы думаете об интерфейсе Action, именованные экземпляры которого используются для установления по умолчанию привязок клавиш в различных L & F. В статье Привязки клавиш имеется удобная утилита для их изучения.

Добавление: в качестве конкретного примера JButton в ClickCount берет свое имя и команду действия из вложенного ClickHandler, поскольку свойство hideActionText Action - это false по умолчанию. В качестве другого примера, Привязки клавиш показывают, что кнопки имеют именованное действие для «нажатых» и «отпущенных», которое создается createButtonListener() в BasicButtonUI , BasicButtonListener в свою очередь использует вложенную UIAction для обработки двух команд, как показано здесь .

1 голос
/ 23 марта 2011

Это то, что вы установили.

http://download.oracle.com/javase/1.4.2/docs/api/java/awt/Button.html#setActionCommand%28java.lang.String%29

По-моему, по умолчанию используется имя кнопки.

Ваше редактирование:

Он мог прийти из двух мест.

  1. Это было имя кнопки (new JButton("disable")), которая по умолчанию является командой действия.
  2. Это была команда, заданная setActionCommand("disable")

Очень важно проиллюстрировать, что по конструкции не имеет значения, какой источник был .Нам все равно, кнопка это, выпадающее меню, меню или что-то еще.Все, что имеет значение, так это команда «отключить».Это шаблон команды.: -)

0 голосов
/ 23 марта 2011

Нет «действительных» команд. Команда предназначена для использования вашим приложением и не влияет на то, как кнопка обрабатывается Swing.

Во втором примере кода, который вы разместили, он устанавливается в коде в следующей строке

b1.setActionCommand("disable");

Для кнопок по умолчанию используется текст кнопки, если команда действия не установлена ​​

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