Дополнительная информация добавлена ​​в JMenuItem - PullRequest
1 голос
/ 04 марта 2010

Я разрабатываю Java-приложение и создаю динамическое JMenu вручную (в зависимости от входных данных). Я добавляю одно и то же действие для каждого пункта меню. Проблема в том, что в зависимости от пункта меню я хотел бы каждый раз выполнять разные действия. Есть ли простой способ сделать это (что-то вроде setData (Object data) для каждого JMenuItem или я вынужден наследовать от JMenuItem)?

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

Юлиан

Ответы [ 2 ]

6 голосов
/ 04 марта 2010

Полагаю, вы можете использовать ActionEvent.getSource в методе actionPerformed вашего Action. сравните источник события с вашим JMenuItem.

для хранения дополнительной информации, вы можете использовать putClientProperty или расширить JMenuItem

1 голос
/ 04 марта 2010

В соответствии с первоначальным вопросом и замечаниями, я бы предложил Джулиану заменить его JMenuItem, построенный на строку, и связанное действие на JMenuItem, построенный только с действием, обеспечивающим как текст, так и связанное поведение. Это действие может ссылаться на другие элементы из приложения, чтобы обеспечить его требуемое поведение.

...