8

我正在使用 Flamingo 功能区和 Substance Office 2007 外观。

当然,现在每个控件都具有这种外观和感觉,即使是对话框上的控件。

我想要的是类似于 Office 2007 中的功能,其中功能区具有 Office 2007 的外观,但其他控件保持其原生 Vista/XP 外观。

是否可以为某些控件分配不同的外观和感觉?也许使用某种链接或代理外观?

4

3 回答 3

9

我刚刚发现:从Substance 5.0开始,SKIN_PROPERTY可用。

它允许将不同的皮肤分配给不同的(JRootPanesJDialog,,JFrameJInternalFrame

一个小技巧:我重写JInternalFrame以删除额外的边框和标题窗格,使其看起来就像一个无边框的面板。这样就可以产生一种印象,即表单/对话框的不同部分具有不同的外观。

于 2009-03-05T10:15:16.117 回答
2

这是一个会自动更改外观的库。我不确定这是否会以不同的方式为每个组件完成,但你应该看看它。pbjar.org

如果您想深入了解外观和感觉/java-look-and-feel-design-guidelines-second-edition,这本书应该很有用

我很高兴看到一些代码示例,如果有人可以编写它,请随时开始。

编辑:

在这个论坛线程线程中,我发现了以下描述

Swing 使用外观和感觉(PLAF)。PLAF 不附加在每个 JFrame 级别上。它们附加在每个 VM 级别上。在一个应用程序中混合 PLAF 几乎是不可能的。我见过几次尝试,都失败了。

于 2009-01-15T09:48:13.360 回答
1

不幸的是,Swing 在幕后做了很多“伪全局”的事情。AFAIK,始终如一的唯一方法是使用私有AppContextAPI。每个AppContext都有自己的事件调度线程和其他“伪全局”。

于 2009-01-15T14:23:17.423 回答