java – 在Windows下禁用JFrame中的默认ALT键操作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 在Windows下禁用JFrame中的默认ALT键操作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2169字,纯文字阅读大概需要4分钟。
内容图文
我想让Windows下的JFrame不按ALT按键操作.为了澄清,当您执行以下代码片段时:
import javax.swing.*;
public class FrameTest {
public static void main(String[] args) throws Exception {
JFrame frame = new JFrame();
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
然后按ALT键然后按向下箭头键,你会在左上角看到一个菜单,你可以选择最小化,移动,关闭等帧(至少我明白了).我想禁用它:即. JFrame不应该“倾听”这些ALT印刷机.
我相信某些Windows组件默认在ALT键上做出反应,因为当我向我的框架添加一个菜单栏,并明确设置外观和放大器时.系统的外观和感觉感觉,现在按下ALT键后自动选择菜单(文件):
import javax.swing.*;
public class FrameTest {
public static void main(String[] args) throws Exception {
JFrame frame = new JFrame();
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("File");
menuBar.add(menu);
frame.setJMenuBar(menuBar);
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); // set Windows look and feel
frame.setVisible(true);
}
}
当我从上面的示例中删除UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())时,按ALT键时不会出现此行为:未选择菜单,但JFrame是.
什么时候看不出来设置感觉,使用“金属”外观.通过查看前一个示例中的菜单栏可以清楚地看到,当您从代码中删除UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())时,您将从“本机外观”变为“金属外观”.但是,无论外观如何,我都看不到JFrame的变化.感觉我设置,它总是看起来像一个原生的Windows框架.
所以,我的问题是:如何在我的JFrame上禁用此ALT行为?我想我可以通过实际改变JFrame的外观来实现.那可能吗?如果是这样,怎么样?
谢谢!
解决方法:
实际上,你在这里看到的几乎就在你漂亮的Swing-y Java世界之外.窗口框架(MDI接口除外)将始终由底层操作系统的窗口管理器绘制.这也是Alt键表现得像你观察到的原因.在这种情况下,WM会拦截此密钥,并确定您要调出程序的系统菜单.这与Java完全无关.
由于几个原因,你不能改变窗框的“外观和感觉”,主要的是这是在Swing的PLAF系统之外.您可以移除窗框,留下一个裸露的窗户(在寒冷的十一月风中冻结),然后您也不应该再获得系统菜单.
此外,您可以尝试处理Alt按键,而不是进一步委托非常按键(应用程序在WM之前获取它,因此您可以搞砸这些事情).我的Java-Fu现在有点生疏,所以不知道是否以及如何实现这一点.
内容总结
以上是互联网集市为您收集整理的java – 在Windows下禁用JFrame中的默认ALT键操作全部内容,希望文章能够帮你解决java – 在Windows下禁用JFrame中的默认ALT键操作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。