качать полноэкранный ярлык - PullRequest
1 голос
/ 03 мая 2020

Я хочу создать 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));

1 Ответ

1 голос
/ 03 мая 2020

Следующий код работает для меня:

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