@Nio74: anche io ti suggerisco di acquisire bene le conoscenze per sviluppare interfacce Swing (AWT ormai è "old") scrivendo tutto il codice "a mano" (senza usare editor "visuali" insomma).

Ti faccio un esempio, semplice anche se magari non significativo al 100%. Hai una applicazione che può aprire/mostrare svariate finestre differenti (potrebbero essere JFrame, JInternalFrame o anche solo semplici "pannelli" che vengono scambiati dentro un singolo JFrame .... non ha molta importanza).

Ciascuna di esse ha una interfaccia utente particolare, con campi specifici, ecc... Magari tutte hanno in comune una cosa: un pannello orizzontale nella parte bassa che contiene una fila di pulsanti che fanno delle azioni. Ogni finestra ha un set di azioni differente, alcune azioni possono essere riutilizzate in più finestre, altre sono molto specifiche.
E tu vuoi cercare di non riscrivere più volte le cose (creazione dei pulsanti, implementazione di listener, ecc...)

Ecco come si potrebbe fare (molto abbozzato ma che si possa capire/intuire):

codice:
public abstract class BaseFrame extends JFrame {
    protected static final UIAction SAVE_ACTION = new UIAction("Save", Icons.SAVE);
    
    private JPanel buttonsPanel;
    
    public BaseFrame() {
        // ......
    }
    
    protected void addAction(UIAction uiAction) {
        // .... crea un JButton, lo inserisce in buttonsPanel e lo "associa"
        // logicamente a *questa* (uiAction) istanza di UIAction ....
    }
    
    protected abstract void handleAction(UIAction uiAction);
}


public class FrameA extends BaseFrame {
    protected static final UIAction CUSTOM_ACTION = new UIAction("xyz", Icons.XYZ);
    
    public FrameA() {
        // .... crea UI specifica ....
        
        addAction(SAVE_ACTION);
        addAction(CUSTOM_ACTION);
    }
    
    protected void handleAction(UIAction uiAction) {
        if (uiAction == SAVE_ACTION) {
            // .....
        } else if (uiAction == CUSTOM_ACTION) {
            // .....
        }
    }
}
Quel UIAction potrebbe essere una classe che contiene il testo del pulsante e magari un "id" di una icona o già direttamente un ImageIcon. Anche qui non ha molta importanza.

Il punto è che la gestione del pannello dei pulsanti e dei pulsanti stessi è nella classe base BaseFrame. Far creare dei JButton in modo che al click un actionPerformed (implementato ad esempio in BaseFrame) faccia invocare handleAction con quel reference di UIAction potrebbe essere più o meno difficile. Ma sarebbe ben incapsulato e oltretutto scritto una volta sola.

Con uno scenario del genere, un editor "visuale" della interfaccia grafica non solo non ti suggerisce nulla o aiuta in tal senso ma è anche più che possibile che ti metta i classici "bastoni tra le ruote".