如果我使用seaglass的外观和感觉,如何更改JButton高度?

时间:2013-12-30 05:40:37

标签: java swing look-and-feel

我在我的应用程序中使用了seaglass外观。如何设置JButton的高度? 似乎没有办法拥有自定义高度。我看了一下文档: http://seaglass.googlecode.com/svn/doc/client-properties.html 我想我必须使用JComponent.sizeVariant = scale来解决问题,但它不起作用。 我该如何解决这个问题?

谢谢trashgod,我试过了:

    try {
        UIManager.setLookAndFeel("com.seaglasslookandfeel.SeaGlassLookAndFeel");
    } catch(Exception e) {
        e.printStackTrace();
    }
    JButton button = new JButton("Test");
    button.putClientProperty("JComponent.sizeVariant", "scale");

    JPanel panel = new JPanel(new BorderLayout());
    panel.add(button);
    panel.setPreferredSize(new Dimension(500, 400));

    JFrame frame = new JFrame();
    frame.setContentPane(panel);
    frame.pack();
    frame.setVisible(true);

但似乎也没有用。无论如何,谢谢你的努力。

2 个答案:

答案 0 :(得分:3)

hereherehere所示,JComponent.sizeVariant属性值为String,例如"迷你","小","常规"和"大"。对于"规模"为了工作,封闭面板的布局必须允许组件调整大小。在下面的variation中,使用了GridLayout

f.add(variantPanel("scale"));
…
private static JPanel variantPanel(String size) {
    JPanel variantPanel = new JPanel(new GridLayout());
    …
    return variantPanel;
}

image

答案 1 :(得分:0)

您的相框包含一个面板。当您包装框架时,面板的尺寸将为500x400,即其优选尺寸。您的面板使用BorderLayout。 BorderLayout不使用按钮首选大小。它将展开按钮以填充整个面板尺寸。尝试使用面板的布局来考虑其组件的首选大小,例如FlowLayout。如果要更改按钮大小,可以设置按钮的首选大小。