package pipe.gui; import javax.swing.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; /** * A toggleable button */ @SuppressWarnings("serial") public class ToggleButton extends JToggleButton implements PropertyChangeListener { /** * Constructor * * @param a toggle action to perform when the button is pressed */ public ToggleButton(Action a) { super(a); if (a.getValue(Action.SMALL_ICON) != null) { setText(null); } a.addPropertyChangeListener(this); } /** * Performs action on press event * * @param evt event */ @Override public void propertyChange(PropertyChangeEvent evt) { if (evt.getPropertyName().equals("selected")) { Boolean b = (Boolean) evt.getNewValue(); if (b != null) { setSelected(b); } } } }