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:
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
}
Ci sono:
- 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:
codice:
public class MyOtherClass ... {
private MyClass mc;
...
private void init() {
component.getInputMap().put(KeyStroke.getKeyStroke("F2"), "doAlgoritmoXAction");
component.getActionMap().put("doAlgoritmoXAction", mc.getDoAlgoritmoX());
}
}
- non capisco perché inserire nel meotodo init() (che non ne conosco l'utilità)
- 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:
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>
per questo parlavo di passargli necessariamente un oggetto Action, e non di una classe mia (da te citata MyClass) ... Grazie!