1

内部フレームの装飾

知りたいのですが、上記のリンク内の画像のように見える代わりに、内部フレームの装飾を通常のウィンドウの装飾として設定する方法はありますか? どうもありがとうございました。

4

1 に答える 1

2

ないと思います。内部フレームの装飾は、ルック アンド フィールによって提供されます。JFrame と JDialog は、OS から装飾を取得します。

そうは言っても、(最上位のウィンドウに) カスタム装飾自体を提供するルック アンド フィールがいくつかあります。

たとえば、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 に答える