【发布时间】:2018-02-15 16:23:21
【问题描述】:
问题
我想知道是否有可能使 JFrame 不可移动/不可拖动 - 只是出于好奇,而不是真正的用例。问题是操作系统的窗口管理器负责窗口的外观,但程序本身只有几个可能的设置。这就是我寻找黑客的原因。
我尝试过的
- 删除了
JFrame的装饰,如this 答案中所述(但是,仍然可以移动窗口,例如在 GNU/Linux 上按住 ALT 键) - 设置一个
ComponentListener,如果JFrame被移动,它会重置位置(但是,这看起来非常有问题,因为监听器只在拖动之后做出反应,但JFrame应该始终保持在同一个位置) - 创建了一个全屏
JFrame,使其透明并添加了一个JPanel来模拟一个窗口(但是,即使窗口最大化,仍然可以拖动窗口) - 改用
JWindow和JDialog(也不起作用)
有没有办法通过使用不同的方法或改进我的一种方法来实现所需的行为?
【问题讨论】:
-
你考虑过启动画面吗?
-
如果有黑客攻击,它将在某种原生解决方案中找到。 Java / Swing 的抽象级别太高了。
-
@MarsAtomic 你指的是选定的答案,这是 ops 的第二个建议吗?
-
@matt 启动画面不也是 JFrame 或 JWindow 吗?
-
@Mars Atomic 此解决方案与使用侦听器的解决方案具有相同的问题。这是小故障。
标签: java swing jframe jdialog jwindow