1

内框装饰

我想知道,有没有办法将我的内部框架装饰设置为普通的窗口装饰,而不是看起来像上面链接中的图像?非常感谢你。

4

1 回答 1

2

我会说不是。内部框架装饰由外观提供,而 JFrame 和 JDialog 则由操作系统提供装饰。

话虽如此,有一些外观和感觉可以自己提供定制装饰(到顶层窗户)。

例如,Metal 具有以下 UI 属性:

RootPane.colorChooserDialogBorder = javax.swing.plaf.metal.MetalBorders$QuestionDialogBorder@182d9c06
RootPane.errorDialogBorder = javax.swing.plaf.metal.MetalBorders$ErrorDialogBorder@63b9240e
RootPane.fileChooserDialogBorder = javax.swing.plaf.metal.MetalBorders$QuestionDialogBorder@687b6889
RootPane.informationDialogBorder = javax.swing.plaf.metal.MetalBorders$DialogBorder@7e0c2ff5
RootPane.plainDialogBorder = javax.swing.plaf.metal.MetalBorders$DialogBorder@5a5e5a50
RootPane.questionDialogBorder = javax.swing.plaf.metal.MetalBorders$QuestionDialogBorder@95c083
RootPane.warningDialogBorder = javax.swing.plaf.metal.MetalBorders$WarningDialogBorder@61b383e9

使用这些您应该能够交换内部框架的边框。

但在 Windows 的默认系统外观下,RootPane 仅提供以下属性...

RootPane.ancestorInputMap = javax.swing.plaf.InputMapUIResource@4ba33d48
RootPane.defaultButtonWindowKeyBindings = [Ljava.lang.Object;@1cc7b00c
RootPaneUI = com.sun.java.swing.plaf.windows.WindowsRootPaneUI

现在......使用 JNI 可能无法让它工作,但我怀疑因为 Swing 使用轻量级绘制过程,它只会以一团糟而告终。

于 2012-07-29T09:23:44.597 回答