Vuoi ad esempio chiamare il metodo algoritmoX in seguito alla pressione di un tasto?Originariamente inviato da valerio65
Nella documentazione c'è questo quando non si vuole far nulla alla pressione del tasto
ma, questo non lo vorrei mettere nel metodo main, ma in una classe del package dove risiedono tutti gli algoritmi degli avvenimenti degli eventi, e non posso farlo siccome per richiamarlo l'oggetto devo prima crearlo e definire il metodo actionPerformed...codice:Action doNothing = new AbstractAction() { public void actionPerformed(ActionEvent e) { //do nothing } }; component.getInputMap().put(KeyStroke.getKeyStroke("F2"), "doNothing"); component.getActionMap().put("doNothing", doNothing);
Una cosa del genere:
Non ho compilato, ho scritto di getto ma come scheletro mi pare okcodice:public class MyClass ... { private ClasseConAlgoritmi cca: private Action doAlgoritmoX; public MyClass(final ClasseConAlgoritmi cca) { doAlgoritmoX = new AbstractAction() { public void actionPerformed(ActionEvent e) { cca.algoritmoX(): } }; } ... setter/getter } ... public class MyOtherClass ... { private MyClass mc; ... private void init() { component.getInputMap().put(KeyStroke.getKeyStroke("F2"), "doAlgoritmoXAction"); component.getActionMap().put("doAlgoritmoXAction", mc.getDoAlgoritmoX()); } }![]()

Rispondi quotando