Quote Originariamente inviata da maximum Visualizza il messaggio
Chiedo scusa, ma la CompositeAction è una classe personalizzata che estende la classe Action public class CompositeAction implements Action{...}.
Action è una interfaccia. Quando si vuole creare una action "custom" tipicamente non si implementa direttamente Action ma si estende (per comodità) la classe AbstractAction.

E comunque Action non rappresenta solo la esecuzione di "qualcosa" ma espone anche altre informazioni, ad esempio tramite il isEnabled() (che serve ad esempio per far sì che un pulsante/menù che ha quella action si abiliti o no a seconda di questa informazione).

Quindi creare una Action "composita" cosa vuol dire (in tal sensi)? Hai considerato questi aspetti?


Quote Originariamente inviata da maximum Visualizza il messaggio
posso fare semplcemente qualcosa del genere?

codice:
        btnConferma.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                log.debug("Inizio azione tasto Conferma " + e);
                    new LoadAction1().actionPerformed(e);        
                    new LoadAction2().actionPerformed(e);
                log.debug("Fine azione tasto Conferma");
            }            
        });
Tecnicamente sì ma è bruttino.


Se vuoi applicare il Composite Pattern ad ActionListener (che è più semplice di un Action) e che esegua sempre N ActionListener in sequenza, si può fare:

codice:
public class CompositeActionListener implements ActionListener {
    private final ActionListener[] listeners;

    public CompositeActionListener(ActionListener... listeners) {
        this.listeners = listeners;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        for (ActionListener l : listeners) {
            l.actionPerformed(e);
        }
    }
}

btn.addActionListener(new CompositeActionListener(actList1, actList2, actList3));


Se vuoi che un ActionListener "blocchi" o no condizionalmente la sequenza, va fatto diversamente.