Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java swing全屏快捷方式_Java_Swing - Fatal编程技术网

Java swing全屏快捷方式

Java swing全屏快捷方式,java,swing,Java,Swing,我想创建一个JMenuItem,它的加速器为shift+f11。 按shift+f11键或单击JMenuItem键,必须全屏显示 有人有什么建议吗 JMenuItem toggle_full_screenFull = new JMenuItem("Toggle Full Screen"); toggle_full_screenFull.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F11 , InputEvent.SHIFT_DOWN_MAS

我想创建一个
JMenuItem
,它的加速器为
shift+f11
。 按shift+f11键或单击
JMenuItem键,必须全屏显示

有人有什么建议吗

JMenuItem toggle_full_screenFull = new JMenuItem("Toggle Full Screen");
toggle_full_screenFull.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F11 , InputEvent.SHIFT_DOWN_MASK));

以下代码适用于我:

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\u DOWN\u MASK
KeyEvent.SHIFT\u MASK
一起使用

现在,如果要使其功能类似于启用/禁用全屏模式:

fullScreen.addActionListener(e -> {
    boolean isNormal = getExtendedState() == JFrame.NORMAL;
    setExtendedState(isNormal ? JFrame.MAXIMIZED_BOTH : JFrame.NORMAL);
});

谢谢,这真的很有帮助。我能做点什么吗?如果我再次按下它,它会恢复正常吗?@bizzaro33我已经编辑了我的答案,但请下次在你原来的问题中提到它。