java - 摆动全屏快捷方式
问题描述
我想创建一个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_DOWN_MASK
或一起使用KeyEvent.SHIFT_MASK
。
现在,如果你想让它像启用/禁用全屏模式一样运行:
fullScreen.addActionListener(e -> {
boolean isNormal = getExtendedState() == JFrame.NORMAL;
setExtendedState(isNormal ? JFrame.MAXIMIZED_BOTH : JFrame.NORMAL);
});
推荐阅读
- jquery - 如何在angularjs中使用select2从选择标签中选择新添加的选项后触发更改事件?
- java - 如何在运行时获取 SWT 小部件/控件的名称
- c# - 反思:如何获取基础方法(不是原始方法)?
- c++ - 如何将对象写入文件,并在 C++ 中从中读取?
- laravel - 如何构建多个仪表板?
- c++ - 在 CWinApp 中 m_pMainWnd 为 NULL,因为未调用 InitInstance
- c++ - 如果范围没有排序,inplace_merge 会做什么?
- c++ - 未定义的参考在 arm chromebook 上编译 taskwarrior
- json - 在Angular中使用httpclient服务加载本地json异步
- javascript - 在 VueJS 中将组件作为道具传递时出现未知的自定义元素错误