Java: ¿Cómo hacer referencia a los componentes GUI de un objeto AbstractAction?

A menudo es necesario cambiar el comportamiento de otros objetos de la GUI en función del estado de otro objeto de la GUI. P.ej. cuando se presiona un botón, una etiqueta cambiará su nombre. Sin embargo, cuando uso un objeto AbstractAction comoJButton myButton = new JButton(myButtonAction); Necesito una referencia a los objetos GUI en el objeto que hereda de AbstractAction. ¿Debo crear los objetos AbstractAction en la GUI y luego pasar todas las referencias GUI necesarias a los objetos AbstractAction o podría considerarse un estilo malo?

Para hacerlo más concreto:

// AbstractAction
   public class MyAction extends AbstractAction {
        public  MyAction(String name, 
                            String description, Integer mnemonic, JLabel) {
            super(name);
            putValue(SHORT_DESCRIPTION, description);
            putValue(MNEMONIC_KEY, mnemonic);
        }
        public void actionPerformed(ActionEvent e) {

                // do something     
            }
        }
    }

public class GUI{
   public Action myAction = null;

   public GUI(){     
        JLabel label = new JLabel("text");
        //This is not a good idea:
         myAction = new MyAction("some text" , desc, new Integer(KeyEvent.VK_Q), label);

        JButton myButton = new JButton(myAction);
   }
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta