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!