2010-03-20 61 views

回答

4

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

至于内部框架,您可以自定义它,因为它是在由Java控制的窗口内呈现的组件。的确,有很多JInternalFrame properties that you can set in your UI manager。但是,我无法让这些人在我的系统上工作。

做一些Google搜索,看起来好像是others have found that you cannot change the appearance of JInternalFrame without changing your whole system's look and feel settings.所以,恐怕你可能不得不依靠操作系统来控制标题栏的颜色,即使在使用内部框架时也是如此。

+0

我觉得你只是有_exactly_描述的精神和意图的JFrame和JInternalFrame的范围之后。由于JFrame和AWT框架类或多或少是Java GUI层和OS GUI层之间的“接口”。我认为这个范围有点“模糊”的唯一地方是JFrame粗糙,因为它有一些控件可能实际上是在OS GUI层处理的 - 我似乎记得在Swing的早期阶段,一些这些参数似乎是OS GUI层的“建议”,因为Sun试图决定如何在操作系统方面定位Swing。 – Wintermut3 2010-03-21 02:54:40

1

好的我认为Joe说得最好,但请记住,您可以决定不装饰框架,然后在框架内提供自己装饰的能力。我有一套像自定义AWT容器那样的皮肤。结果是一个GUI的外观或行为不像典型框架所做的那样 - 不是“矩形”或“方形”“不动产”,而是更像是像Winamp这样的应用程序的皮肤,导致GUI的形状不对称在设计中使用OS GUI层中的Alpha级别进行查看。在我的皮肤容器中,“皮肤”是一个图像,它是对单个图像进行“饼干切割”,然后基于皮肤类的几何图形绘制并维护那些描述的区域 - 我只提到这是一种字面上的方式“在盒子外面思考”的问题类型。

WM

+0

再次回顾Joe的回答,我认为这是导入 - 因为多年来摆动已经模糊了这一点 - 记住Java GUI如何与操作系统平台交互并向用户呈现渲染器最终由Native Peer AWT的症结。原谅我的老Java爪哇指出这一点,但我认为有一大群不断增长的Java程序员,他们并不真正了解AWT甚至整个Java,导致这种情况:阅读“重量级组件”与“轻量级组件“,如果好奇的话:)很多东西都会变得清晰。 – Wintermut3 2010-03-22 18:23:25

相关问题