Action

Klassen AbstractAction, som implementerar gränssnittet Action, är bra att ärva när en ActionListener ska implementeras. Den har properties som hanterar bland annat ikoner, namn och enabled/disabled. 

Det går att sätta en Action för en redan befintlig knapp eller menyelement med metoden setAction(). Vidare har knappar och menyelement konstruktorer som skapar en knapp/menyelement utfrån en Action. JMenu och JPopupMenu har add()-metoder som tar en Action som inparameter och returnerar ett JMenuItem. JToolBar har en add()-metod som tar en Action som inparameter och returnerar en JButton.

Vidare ärver Action av ActionListener så den kan användas överallt där en ActionListener används. Genom att använda ett och samma Action-objekt överallt där samma operation ska utföras försäkrar vi oss om att operationen alltid utförs på samma sätt.

En Action skickar PropertyChangeEvent när någon av dess properties ändrar värde. När add() i JPopupMenu, JMenu eller JToolbar anropas med en Action som inparameter registreras det skapade menyelementet/knappen som PropertyChangeListener. Det är på så sätt som knappen och menyelementet blir inaktiva i detta lilla exempel, ActionExample.java. Håll ner shifttangenten och klicka här för att hämta bilden, action.gif.