4

すべての TitledBorder フォントを変更するには、UIManager を使用しています。

UIManager.put("TitledBorder.font", new Font("Tahoma", Font.BOLD, 11));

しかしTitledBorder.border、境界線の色 (または幅) のみを変更するには、プロパティに何を設定すればよいでしょうか?

乾杯

4

2 に答える 2

7

UIManagerすべてのTitledBorderフォントを一度に変更するのと同じように、TitledBorder境界線を変更するには、次の関数を使用します。

UIManager.put("TitledBorder.border", new LineBorder(new Color(200,200,200), 1));

これは、border プロパティを 2 番目のパラメーターで渡された border オブジェクトに変更 (設定) します。すべてのボーダー タイプ (ファクトリ クラスも含む) の説明は、http: //docs.oracle.com/javase/tutorial/uiswing/components/border.htmlにあります。

このサンプルはLineBorder、あなたが求めたように、コンストラクターで色と幅を取るオブジェクトを渡します。

于 2012-09-14T14:33:17.513 に答える
5

そうですね、TitledBorder自体でいつでも任意のプロパティを指定できます。SwingTitledBorderの完全にカスタマイズされた例を次に示します。

public static void main ( String[] args )
{
    LineBorder border = new LineBorder ( Color.RED, 3, true );
    TitledBorder tborder = new TitledBorder ( border, "Titled border", TitledBorder.CENTER,
            TitledBorder.DEFAULT_POSITION, new Font ( "Arial", Font.BOLD, 14 ), Color.BLUE );

    JFrame frame = new JFrame ();

    JLabel label = new JLabel ( "Some content label" );
    label.setBorder ( BorderFactory
            .createCompoundBorder ( BorderFactory.createEmptyBorder ( 50, 50, 50, 50 ),
                    BorderFactory.createCompoundBorder ( tborder,
                            BorderFactory.createEmptyBorder ( 15, 15, 15, 15 ) ) ) );
    frame.add ( label );

    frame.pack ();
    frame.setLocationRelativeTo ( null );
    frame.setDefaultCloseOperation ( JFrame.EXIT_ON_CLOSE );
    frame.setVisible ( true );
}
于 2012-09-14T12:10:26.243 に答える