Как мне установить ускоритель для ключа в действии?JAVA

Программисты JAVA общаются здесь
Anonymous
Как мне установить ускоритель для ключа в действии?

Сообщение Anonymous »

Я пытаюсь объединить большинство своих меню в 2 подобных приложениях, которые имеют много классов. Частично это я пытаюсь переместить все, что могу, в действия. Проблема, с которой я сталкиваюсь, заключается в том, что я хочу одни и те же ускорители для пунктов меню. Есть ли способ, которым я могу установить это в действии, чтобы мне не приходилось дублировать свой код для настройки ускорителя? < /P>

package com.protocase.viewer.actions;

import com.protocase.viewer.DesignerApplication;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
import static javax.swing.Action.MNEMONIC_KEY;
import static javax.swing.Action.SHORT_DESCRIPTION;

/**
*
* @author davidh
*/
public class NewEnclosureAction extends AbstractAction{

private DesignerApplication app;

public NewEnclosureAction(DesignerApplication app) {
super();
this.app = app;
putValue(SHORT_DESCRIPTION, "New");
putValue(AbstractAction.NAME, "New");
putValue(MNEMONIC_KEY, KeyEvent.VK_N);
}

@Override
public void actionPerformed(ActionEvent e) {
app.OnNew();
}

}
< /code>

..............

JMenuItem newMit = new JMenuItem(new NewEnclosureAction(this));
newMit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, ActionEvent.ALT_MASK));
newMit.getAccessibleContext().setAccessibleDescription("New Enclosure from template");
fileMenu.add(newMit);
< /code>

..............

I am looking to move the setAccelerator calls to within my action class.

Is there any way to do this?

Подробнее здесь: https://stackoverflow.com/questions/183 ... -an-action

Вернуться в «JAVA»