java - 自定义 Java 窗口标题栏菜单

标签 java swing contextmenu jinternalframe custom-titlebar

我试图允许用户在 Java 中更改窗口的标题,而无需向窗口本身添加组件。我实际上是在用 JInternalFrame 尝试这个, 但对于 JFrame 的解决方案应该是相似的.我只是想在右键单击窗口标题栏时弹出的上下文菜单中添加一个额外的菜单项。例如,下面的设置标题:

enter image description here

这个例子是在 Windows XP 上,但也许有一种方法可以独立获得操作系统的窗口上下文菜单,类似于 SystemTray.getSystemTray() (但对于 应用程序中的单个窗口)。由此我可以提供我自己的 ActionListener弹出一个对话框供用户输入新标题。

这是一项比我猜测的要大得多的任务吗?有没有人有他们以前使用过的解决方案?

最佳答案

简短回答:我认为这并不容易。我不是 100% 确定这是否可能。

首先,JFrame和JInternalFrame其实是有很大区别的。 JFrame 是顶级组件,其标题栏等通常由操作系统提供。 JInternalFrame 的全部内容(包括标题栏)由 Swing LAF 提供。

对于 JInternalFrame,上下文菜单由 LAF 提供,而不是 JInternalFrame 本身。您必须对 UIComponent 进行一些操作才能更改上下文菜单。我认为您可能必须提供自定义 UI 组件才能执行此操作,这很丑陋并且通常会破坏不同的 LAF 或工作但充其量看起来很糟糕。参见 BasicInternalFrameTitlePane , createSystemMenu 方法。

关于java - 自定义 Java 窗口标题栏菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6414299/

相关文章:

c# - 从上下文菜单发送对父对象的引用

java - 零宽度正则表达式在 Java 中不匹配

java - 如何配置 Log4J2

java - JFrame 不工作 - 内容不出现

c# - WPF ContextMenu 单击时消失

Android:在长按上显示 ContextMenu 以查看?

java - JXDatePicker swingx语言

java - Spark : strange behavoir of partitionBy, 字段变得不可读

java - 使用复合 JPanel 单元格编辑器编辑后 JTable 失去焦点

java - 获取JTable中所有选定行的单元格值