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);
}
}