Java 是否可以更改JFrame或JInternalFrame的标题栏颜色

Java 是否可以更改JFrame或JInternalFrame的标题栏颜色,java,swing,Java,Swing,我正在尝试更改标题栏的颜色,但无效 UIManager.put(“JFrame.activeCaption”,newjavax.swing.plaf.ColorUIResource(Color.GREEN)); JFrame.setDefaultLookAndFeelDecorated(true) 我不认为您可以对JFrame标题栏中的颜色做任何事情,至少在不使用本机代码实现特定于平台的解决方案的情况下是这样。这是因为JFrame实际上使用本机窗口系统来创建窗口 至于内部框架,您可以自定义它,因

我正在尝试更改标题栏的颜色,但无效
UIManager.put(“JFrame.activeCaption”,newjavax.swing.plaf.ColorUIResource(Color.GREEN));
JFrame.setDefaultLookAndFeelDecorated(true)

我不认为您可以对
JFrame
标题栏中的颜色做任何事情,至少在不使用本机代码实现特定于平台的解决方案的情况下是这样。这是因为
JFrame
实际上使用本机窗口系统来创建窗口

至于内部框架,您可以自定义它,因为它是在Java控制的窗口内呈现的组件。事实上,有很多问题。然而,我无法让它们在我的系统上工作


在谷歌上搜索一下,似乎是这样,我担心即使在使用内部框架时,您也可能不得不依靠操作系统来控制标题栏的颜色。

我认为您无法对
JFrame
标题栏的颜色做任何事,至少在不使用本机代码实现特定于平台的解决方案的情况下是如此。这是因为
JFrame
实际上使用本机窗口系统来创建窗口

至于内部框架,您可以自定义它,因为它是在Java控制的窗口内呈现的组件。事实上,有很多问题。然而,我无法让它们在我的系统上工作


在谷歌上搜索一下,似乎是这样,我担心即使在使用内部框架时,你也可能不得不依靠操作系统来控制标题栏的颜色。

好的,我想乔说得最好,但请记住,您可以决定不装饰框架,然后在框架内提供自己装饰的能力。我有一套类似皮肤的定制AWT容器,可以做到这一点。结果是GUI的外观或行为与典型框架的外观或行为完全不同——不是“矩形”或“方形”“不动产”,而是更像Winamp等应用程序的外观,导致GUI的形状在设计上不对称,并通过使用OS GUI层中的Alpha级别进行查看。在我的Skin-able容器中,“Skin”是一个图像,它是对单个图像的“cookie cut”,然后根据Skin类的几何图形绘制并维护这些描述的区域——我只提到这是一种字面上“跳出框框思考”这类问题的方法


WM

好的,我认为乔说得最好,但请记住,你可以决定不装饰框架,然后在框架内提供自己装饰框架的能力。我有一套类似皮肤的定制AWT容器,可以做到这一点。结果是GUI的外观或行为与典型框架的外观或行为完全不同——不是“矩形”或“方形”“不动产”,而是更像Winamp等应用程序的外观,导致GUI的形状在设计上不对称,并通过使用OS GUI层中的Alpha级别进行查看。在我的Skin-able容器中,“Skin”是一个图像,它是对单个图像的“cookie cut”,然后根据Skin类的几何图形绘制并维护这些描述的区域——我只提到这是一种字面上“跳出框框思考”这类问题的方法


WM

我认为您刚刚准确描述了JFrame和JInternalFrame范围背后的精神和意图。因为JFrame和AWTs框架类或多或少是Java的GUI层和OS GUI层之间的“接口”。我认为这个范围有点“模糊”的唯一地方是JFrame的粗糙,因为它有一些可能在OS GUI层实际处理的控件——我似乎记得在Swing的早期,一些参数似乎是“建议”在Sun试图决定如何定位Swing与OS之间的关系时,我认为您已经准确地描述了JFrame和JInternalFrame范围背后的精神和意图。因为JFrame和AWTs框架类或多或少是Java的GUI层和OS GUI层之间的“接口”。我认为这个范围有点“模糊”的唯一地方是JFrame的粗糙,因为它有一些可能在OS GUI层实际处理的控件——我似乎记得在Swing的早期,一些参数似乎是“建议”Sun试图决定如何将Swing定位到操作系统GUI层。再看看Joe的答案,我认为重要的是——多年来Swing一直掩盖了这一点——记住Java GUI如何与操作系统平台交互以及如何向用户呈现最终由本机对等方决定,这是AWT的关键。请原谅我老Java大师指出这一点,但我认为有一大群Java程序员并不真正理解AWT,甚至不理解Java作为一个整体,这导致了这一点:如果好奇的话,请阅读“重量级组件”与“轻量级组件”的比较:),很多都会变得清晰,我认为重要的是——多年来swing一直在掩盖这一点——记住Java GUI如何与操作系统平台交互以及如何向用户呈现最终由本地对等方决定,这是AWT的关键。请原谅老Java大师指出这一点,但我认为有一大群Java程序员并不真正理解AWT,甚至不理解Java作为一个整体,这导致了这一点:如果好奇的话,请阅读“重量级组件”与“轻量级组件”的比较:),很多事情都会变得清晰。