JFrame DO_NOTHING_ON_CLOSE is not working on Command + Q

Viewed 587

I am creating a window that I need to close it by only clicking a button.
For that I'm using
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE) mehod.

But the problem is my Mac is closing that window when I click command + q.
Here is a code:

package screen.saver;

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

public class ScreenSaver {

    public static void main(final String[] args) throws Exception {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

        JFrame screenSaverFrame = new JFrame();
        screenSaverFrame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
        screenSaverFrame.setUndecorated(true);
        screenSaverFrame.setResizable(false);

        JButton closeWindow = new JButton("Close window");
        closeWindow.addActionListener(e -> {
            screenSaverFrame.dispose();
        });

        screenSaverFrame.add(closeWindow, BorderLayout.CENTER);
        screenSaverFrame.validate();
        GraphicsEnvironment.getLocalGraphicsEnvironment()
                .getDefaultScreenDevice()
                .setFullScreenWindow(screenSaverFrame);
    }
}
1 Answers
Related