使用UIManager标题边界颜色和宽度

时间:2012-09-14 07:54:41

标签: java swing border uimanager

要更改所有TitledBorder字体,我使用的是UIManager:

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

但是要给TitledBorder.border属性添加什么才能仅改变边框的颜色(或者甚至是宽度)?

干杯

2 个答案:

答案 0 :(得分:6)

使用UIManager一次更改所有TitledBorder字体,更改TitledBorder边框使用此功能:

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

它会将border属性更改(设置)为第二个参数中传递的border对象。 所有边框类型(甚至是工厂类)描述都可以在这里找到:http://docs.oracle.com/javase/tutorial/uiswing/components/border.html

此示例传递LineBorder对象,该对象在构造函数中采用颜色和宽度,就像您要求的那样。

答案 1 :(得分:5)

好吧,你总是可以在TitledBorder中指定任何属性。 这是一个完全定制的Swing TitledBorder示例:

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 );
}