首页 > 解决方案 > 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),这样我的程序将为我执行按钮点击吗?

标签: javaswingjframe

解决方案


我有一个按钮 - 应该 - 使应用程序隐藏(失去焦点)。

如果您希望窗口隐藏,那么通常您会使用:

window.setVisible( false ).

这与显示窗口相反。

setWindowFocusableState(false) 仍将保持窗口可见,您只是无法使窗口上的任何组件具有焦点。

问题是我似乎无法命名我所在的当前 jframe JFrame

可以通过在ActionListener按钮的 中编写以下代码来找到该信息:

JButton button = (JButton)e.getSource();
Window window = SwingUtilities.windowForComponent( button );
window.setVisible( false );

推荐阅读