RadioItemPreventClose.java

package com.jsql.view.swing.util;

import javax.swing.*;
import java.awt.event.MouseEvent;

public class RadioItemPreventClose extends JRadioButtonMenuItem {
    public RadioItemPreventClose(String text) {
        super(text);
    }
    public RadioItemPreventClose(String text, boolean selected) {
        super(text, selected);
    }
    public RadioItemPreventClose(String text, ImageIcon icon, boolean selected) {
        super(text, icon, selected);
    }
    public RadioItemPreventClose(AbstractAction a) {
        super(a);
    }
    @Override
    protected void processMouseEvent(MouseEvent e) {
        if (!RadioItemPreventClose.preventClose(e, this)) {
            super.processMouseEvent(e);
        }
    }
    public static boolean preventClose(MouseEvent e, JMenuItem m) {
        if (e.getID() == MouseEvent.MOUSE_RELEASED && m.contains(e.getPoint())) {
            m.doClick();
            m.setArmed(true);
            return true;
        }
        return false;
    }
}