Следующий код работает для меня:
public class FullScreenExample extends JFrame {
public FullScreenExample() {
super("");
JMenuBar menuBar = new JMenuBar();
JMenu homeMenu = new JMenu("home");
JMenuItem fullScreen = new JMenuItem("full screen");
fullScreen.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F11, KeyEvent.SHIFT_MASK));
fullScreen.addActionListener(e->setExtendedState(JFrame.MAXIMIZED_BOTH));
homeMenu.add(fullScreen);
menuBar.add(homeMenu);
setJMenuBar(menuBar);
setLocationByPlatform(true);
pack();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new FullScreenExample().setVisible(true));
}
}
И он работает с KeyEvent.SHIFT_DOWN_MASK
или KeyEvent.SHIFT_MASK
.
Теперь, если вы хотите, чтобы он работал как enable / отключить полноэкранный режим:
fullScreen.addActionListener(e -> {
boolean isNormal = getExtendedState() == JFrame.NORMAL;
setExtendedState(isNormal ? JFrame.MAXIMIZED_BOTH : JFrame.NORMAL);
});