我在我的应用程序中使用了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);
但似乎也没有用。无论如何,谢谢你的努力。
答案 0 :(得分:3)
如here,here和here所示,JComponent.sizeVariant
属性值为String
,例如"迷你","小","常规"和"大"。对于"规模"为了工作,封闭面板的布局必须允许组件调整大小。在下面的variation中,使用了GridLayout
:
f.add(variantPanel("scale"));
…
private static JPanel variantPanel(String size) {
JPanel variantPanel = new JPanel(new GridLayout());
…
return variantPanel;
}
答案 1 :(得分:0)
您的相框包含一个面板。当您包装框架时,面板的尺寸将为500x400,即其优选尺寸。您的面板使用BorderLayout。 BorderLayout不使用按钮首选大小。它将展开按钮以填充整个面板尺寸。尝试使用面板的布局来考虑其组件的首选大小,例如FlowLayout。如果要更改按钮大小,可以设置按钮的首选大小。