首页 > 解决方案 > 摆动全屏快捷方式

问题描述

我想创建一个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));

标签: javaswing

解决方案


以下代码适用于我:

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

现在,如果你想让它像启用/禁用全屏模式一样运行:

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

推荐阅读