I'm creating a very simple class to override Swing JRadioButton which allows a user to set a field determining whether or not the radio button is selectable.
public class SelectableRadio extends JRadioButton implements MouseListener
private boolean selectable = true;
public SelectableRadio()
{
super();
addMouseListener(this);
}
public void setSelectable(boolean select)
{
selectable = select;
}
@Override
public void mousePressed(MouseEvent e)
{
if (!selectable)
{
e.consume();
}
}
All of the other methods are implemented. This does not work. When a SelectableRadio button is set as NOT selectable, the radio button is still selected when clicked.
Any help?
You'll need to change your setSelectable code, and add the following:
if (editable) {
this.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
super.enableEvents(Event.MOUSE_DOWN | Event.MOUSE_UP);
} else {
this.setCursor(CursorFactory.createUnavailableCursor());
super.disableEvents(Event.MOUSE_DOWN | Event.MOUSE_UP);
}