问题标签 [jdialog]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Solaris 5.10:如何隐藏任务栏上的 JWindow 按钮?
我在我的 Java 应用程序中使用 JWindow 对象来模拟鼠标悬停下拉菜单。当用户将鼠标悬停在 JLabel 上时,该窗口会出现并一直存在,直到鼠标退出标签或新可见的窗口。我的问题是,每次用户执行此操作时,屏幕底部的任务栏中都会出现一个新条目,没有标题或图标,并且在窗口上调用 setVisible(false) 后立即消失。
我尝试切换到未装饰的 JDialog,这解决了我的任务栏问题,但引入了一个新问题。在 JDialog 上调用 setVisible(true) 时,焦点从我的框架中移开。标题栏的颜色发生变化以表明这一点,看起来不专业。
使用未修饰的JFrame,出现上述两个问题
我不希望使用 JInternalFrame,因为这需要完全重新设计我的界面(切换到 JDesktopPane 结构),并且我不需要 JInternalFrame 的任何其他功能。
有任何想法吗?
java - 如何关闭 JDialog 并通知窗口事件侦听器?
有没有办法通过代码关闭 JDialog 以便仍会通知 Window 事件侦听器?我已经尝试将可见设置为 false 并进行处理,但似乎都没有这样做。
swing - 保持在主应用程序窗口顶部的最小化 JFrame
我的应用程序会弹出一个对话框。用户通常希望在此对话框和应用程序窗口之间来回切换一段时间。我希望这个对话框保持在顶部,这样它就不会隐藏在主应用程序窗口后面。但同时我希望对话框有一个最小化按钮,以便在一段时间内不需要它时可以让开。
这是我尝试过的:
使用无模式的 JDialog - 对话框很好地保持在前面,但它没有最小化按钮,也没有自己的任务栏按钮
使用 JFrame - 对话框现在有一个最小化按钮和它自己的任务栏按钮,但是当主窗口获得焦点时,对话框隐藏在它后面。
使用 JFrame 并在对话框中添加 WindowListener.windowDeactivated() { this.toFront() }。这样做的问题是 toFront() 也设置了焦点,所以你会得到一个奇怪的焦点闪烁效果。
使用带有 setAlwaysOnTop 的 JFrame - 这是最接近的解决方案,但现在窗口将位于所有其他应用程序之上,而不仅仅是我的应用程序。
如果 toFront 只是在不改变焦点的情况下将 JFrame 带到前面会很容易,但不幸的是,情况并非如此。是否有另一种方法来更改 JFrame Z 顺序?
编辑:我突然想到,如果有一种简单的方法可以“汇总”JDialog,即最小化它而不是任务栏,那也可以解决我的问题。
java - JMenuItem 加速器在显示两个非模态 JDialog 后不起作用?(仅限 Mac?)
我的问题是,在一个接一个地直接显示两个 JDialog 之后,JMenuItems 的加速器不再工作。
请看一下重现问题的这个小例子:
使用编译它javac DialogBug.java
并运行它java DialogBug
。
您会看到两个带有“确定”按钮的按钮。单击它们关闭两个对话框。现在按“Ctrl-O”。这应该将“打开执行”打印到控制台,但这不会发生。现在单击“文件”菜单。现在“Ctrl-O”将按预期工作。
如果您使用任何参数启动应用程序,例如,java DialogBug x
则只会打开一个对话框,并且“Ctrl-O”将在关闭对话框后立即起作用,如预期的那样。
我的环境如下:
但据我所知,这个应用程序在其他虚拟机中的行为类似。
请帮我!
我真的不知道这里可能出了什么问题。如果这是一个 Java 错误(我希望它是一个),那么如果您有解决方法,请告诉我...
如果您可以或不能在其他系统上重现此内容,请在评论中告诉我。
非常感谢!
更新
在Snow Leopard 上安装 Java 1.5(叹气)后,我可以确认 1.5.0_19 也会发生这种情况,至少在 Snow Leopard 上是这样。
更新 2
适用于我在 Windows XP 上。
更新 3
似乎也适用于 Windows Vista。这使得这是一个 Mac OS X 10.5+10.6 问题,AFAIK 到目前为止。
更新 4
此错误在 Apple 的问题 ID #7240026 下提交。
java - Java Swing:JInternalFrame:需要一个对话框弹出
我有一个 JInternalFrame 窗口,当按下 JButton 时需要弹出一个模式对话框。一开始我尝试使用JDialog,但是发现JDialog的构造函数需要:
- 框架
- 布尔模态
我尝试将 JInternalFrame 传递给它,但类型不匹配。
我应该将 JDialog 与 JInternalFrame 一起使用吗?如果我不指定所有者(即传递空值)怎么办?这有什么问题吗?
java - 当用户在 JDialog 之外单击时如何关闭模态 JDialog?
我有一个未装饰的模态 JDialog,当用户在模态对话框之外单击时,我想将其设置为 setVisible(false)。
这在 Swing 中可能吗?
我正在做的是为日期选择器之类的文本字段弹出一个自定义编辑器。有没有更简单的方法来做我想做的事?
编辑
请记住,调用 setVisible(true) 时模态会阻塞,因此您不能只说“不要使用模态对话框”
而且我已经尝试将焦点监听器放在对话框上,它们不会在其模态时触发。
java - Java Swing:在现有窗口顶部定位对话框
有人可以显示简单的 Java Swing 代码/Web 资源,当单击 JFrame 的按钮时,它将弹出对话框中心对齐地放置在现有 JFrame 窗口的顶部?
java - JDialog 在全屏模式下不显示
我有一个以全屏模式运行并且运行良好的应用程序。现在我需要添加一个简单的、未经修饰的对话框,但我遇到了麻烦。如果我以最大化但不是全屏运行应用程序,则对话框将按预期显示和运行。当我切换回全屏时,对话框不会显示。
该对话框扩展了 JDialog 并且仅包含一个 JSlider 和几个按钮。它是未装饰的,不是模态的。(出于测试目的,我禁用了模态——每次对话框阻止输入时强制退出应用程序很痛苦。)我正在使用 进入全屏模式setFullScreenWindow()
,并传入应用程序的主 JFrame。如果我将那个 JFrame 设置为 JDialog 的所有者,这没有什么区别。toFront()
如果我调用对话框,它似乎也无济于事。
该对话框似乎处于活动状态——尤其是因为如果我将其设为模态,它会阻止输入——但只是没有显示或隐藏。那么,在全屏模式下显示 JDialog 有什么明显的技巧吗? 我可能会忽略或忽略的东西?
如果没有明显的解决方案,我可以稍后发布一些代码。不幸的是,我现在没有时间。
java - 带有最小化按钮的 JDialog
是否可以为非模态(模态=假)JDialog 设置最小化和最大化按钮。我知道 JFrame 是解决此问题的理想解决方案,但是必须在现有代码中进行此更改,并且从 JDialog 更改它的难度很小到 JFrame。
java - JDialogs 导致我的应用程序菜单在 OSX 上消失
每当我的任何 JDialogs 具有焦点时,工具栏都不会显示我的应用程序主菜单接受的任何菜单(它不显示文件编辑等....)。这是 JDialogs/Swing 固有的问题,还是我如何制作对话框的某种问题?