java - JFrame 问题(密切关注)
问题描述
我对 java 有非常基本的经验,并且有 2 个问题。
问题 1:我有一个按钮可以打开一个新的 JFrame,效果很好。在第二个
iJFrame
我有一个按钮 - 应该 - 使应用程序隐藏(失去焦点)。
我环顾四周,发现这很容易做到JFrameName".setFocusableWindowState(false
问题是我似乎无法命名我所在的当前jframe JFrame,所以我无法调用该函数。我通常在我的起始代码的公共主目录中调用我已经看到的 JFrame:
JFrameName newframe = new JFrameName();
newframe.setVisible(true);
我究竟在哪里声明JFrameName
我在我的JFrame
类中创建的实例的名称,以便我可以调用该setFocusableWindowState
函数?
问题2:上面的问题完成了,因为我想将键盘快捷键链接到按钮。然后应该使用此键盘快捷键 - 在另一个窗口中,而不是 java 应用程序中。我的问题:我可以在java中手动定义键盘快捷键(例如control+alt+delete)或(control+f1),这样我的程序将为我执行按钮点击吗?
解决方案
我有一个按钮 - 应该 - 使应用程序隐藏(失去焦点)。
如果您希望窗口隐藏,那么通常您会使用:
window.setVisible( false ).
这与显示窗口相反。
setWindowFocusableState(false) 仍将保持窗口可见,您只是无法使窗口上的任何组件具有焦点。
问题是我似乎无法命名我所在的当前 jframe JFrame
可以通过在ActionListener
按钮的 中编写以下代码来找到该信息:
JButton button = (JButton)e.getSource();
Window window = SwingUtilities.windowForComponent( button );
window.setVisible( false );
推荐阅读
- parallel-processing - 变体调用管道并行化:错误 - “sbatch:未找到提交作业脚本时出错(退出代码 127)”
- android-studio - Ionic Live Reload 无法在 Android 手机上加载应用程序
- azure - 如何将数据从 .net 核心 api 发送到 azure 日志分析
- python - Python如果mysql行不等于输入
- reactjs - 从 MapContainer 外部渲染 Map 子节点
- azure - @azure/identity node.js 无法进行身份验证
- redis - Redis 集群问题
- checkbox - 单击时 SwiftUI 复选框未显示复选标记
- apache-spark - 将 Spark DataFrame 写入 Kafka 是忽略分区列和 kafka.partitioner.class
- node.js - Json.parse 抛出:“SyntaxError:JSON 输入意外结束”