No scusami non capisco, forse perché studiando dal libro non ho una visuale completa, comunque ti sarei grato se mi daresti chiarimenti...
In questa parte:
Ci sono:codice: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 }
- cca, che prima lo dichiari all'inizio, ma poi ne viene ricevuto un altro dal costruttore, quindi il primo dichiarato non so a che serva
Qui:
- non capisco perché inserire nel meotodo init() (che non ne conosco l'utilità)codice:public class MyOtherClass ... { private MyClass mc; ... private void init() { component.getInputMap().put(KeyStroke.getKeyStroke("F2"), "doAlgoritmoXAction"); component.getActionMap().put("doAlgoritmoXAction", mc.getDoAlgoritmoX()); } }
- component non dovrebbe essere il bottone a cui collegare il metodo?
- getDoAlgoritmoX() non hai fatto riferimento in nessun posto a questo metodo...
Comunque, facendo delle piccole modifiche, secondo le mie conoscenze, l'unico errore che mi spunta è questo:
per questo parlavo di passargli necessariamente un oggetto Action, e non di una classe mia (da te citata MyClass) ... Grazie!codice:C:\Users\Valerio\Desktop\java\GUI\Swing>javac Last.java Last.java:20: error: method put in class ActionMap cannot be applied to given ty pes; x.getActionMap().put("pressed",new Azione2(new Azione(a))); ^ required: Object,Action found: String,Azione2 reason: actual argument Azione2 cannot be converted to Action by method invoca tion conversion 1 error C:\Users\Valerio\Desktop\java\GUI\Swing>

Rispondi quotando