How to make a modal JFrame?(如何制作模态 JFrame?)
问题描述
可能重复:
如何在 Swing java 中制作 JFrame Modal
我有 2 个 JFrame,一个是主 JFrame,另一个是子 JFrame,当我显示子 JFrame 时,我试图让用户交互无法访问主 JFrame.
I have 2 JFrames one is the main JFrame and the other one is a sub JFrame, and I'm trying to make the main JFrame inaccessible to user interactions when I display the sub JFrame.
推荐答案
如何制作模态JFrame?
How to make a modal JFrame?
不要.使用模态 JDialog——这正是它们的用途.您当然明白 JDialog 可以拥有一个复杂的 GUI,就像 JFrame 拥有的任何 GUI 一样复杂.
Don't. Use a modal JDialog -- that's precisely what they're for. You understand of course that a JDialog can hold a complex GUI, as complex as any held by a JFrame.
我们经常遇到使用诸如 NetBeans 之类的 GUI 构建器来帮助他们创建 GUI 的人发布的此类帖子,并且由于构建器创建了第二个窗口的代码来扩展 JFrame,因此程序员很难返回并将其更改为对话框.解决此问题的方法是尝试将 Swing 代码创建转向创建 JPanel,而不是 JFrame 等顶级窗口.这样,如果需要,您可以在 JFrame 中使用创建的 JPanel,如果需要,可以使用 JDialog,JApplet,甚至另一个 JPanel,只要最适合这种情况.这将极大地提高您代码的灵活性.
We often run into posts like these by folks who use a GUI-builder such as NetBeans to help them create their GUI's, and since the second window's code was created by the builder to extend a JFrame, it's very hard for the programmer to go back and change it to a dialog. The way to fix this is to try to gear your Swing code creation towards creation of JPanels, not top-level windows such as JFrames. This way you could use the created JPanel in a JFrame if desired, a JDialog if desired, a JApplet, or even another JPanel, whatever works best for the situation. This will increase your code's flexibility tremendously.
这篇关于如何制作模态 JFrame?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何制作模态 JFrame?
基础教程推荐
- 无法使用修饰符“public final"访问 java.util.Ha 2022-01-01
- 在 Libgdx 中处理屏幕的正确方法 2022-01-01
- 减少 JVM 暂停时间 >1 秒使用 UseConcMarkSweepGC 2022-01-01
- FirebaseListAdapter 不推送聊天应用程序的单个项目 - Firebase-Ui 3.1 2022-01-01
- 降序排序:Java Map 2022-01-01
- “未找到匹配项"使用 matcher 的 group 方法时 2022-01-01
- Java:带有char数组的println给出乱码 2022-01-01
- 如何使用 Java 创建 X509 证书? 2022-01-01
- 设置 bean 时出现 Nullpointerexception 2022-01-01
- Java Keytool 导入证书后出错,"keytool error: java.io.FileNotFoundException &拒绝访问" 2022-01-01