我无法弄清楚如何控制标题栏(工具栏)的高度。以下代码不起作用:
((Label)form.getToolbar().getTitleComponent()).setIcon(image); // sets the image
// below does not work
((Label)form.getToolbar().getTitleComponent()).setHeight(50);
form.getToolbar().setHeight(50);
我想降低高度的原因是标题栏中似乎有一些额外的空格。
我添加了一个屏幕截图:
增加:
我已根据您的建议修改了我的代码,但仍然无效:
@Override
public void run() {
show();
}
private class SignupLoginForm extends Form {
public SignupLoginForm(String title, BorderLayout borderLayout) {
super(title, borderLayout);
}
@Override
protected boolean shouldPaintStatusBar() {
return false;
}
@Override
protected Component createStatusBar() {
return new Container();
}
}
private final void show() {
loginSignupForm = new SignupLoginForm(null, new BorderLayout());
Tabs loginSignupTabs = new Tabs();
Image splashScreenImage = theme.getImage("logo.png");
((Label) loginSignupForm.getToolbar().getTitleComponent()).setIcon(splashScreenImage);
Style loginSignupStyle = UIManager.getInstance().getComponentStyle("Tab");
prepareAndAddSignupTab(loginSignupTabs, loginSignupStyle);
prepareAndAddLoginTab(loginSignupTabs, loginSignupStyle);
loginSignupForm.add(BorderLayout.CENTER, loginSignupTabs);
loginSignupForm.show();
}
请注意,我没有使用GUI Builder。
答案 0 :(得分:3)
您可以通过覆盖shouldPaintStatusBar()
中的Form
来摆脱状态,TitleBar
将取其内容的大小加上填充和&边距。
@Override
protected boolean shouldPaintStatusBar() {
return false;
}
或者通过修改主题中的StatusBar
UIID,使所有方面都有0填充。除非您使用自定义工具栏,否则这会对您的应用程序产生影响。
如果您希望在单个表单上删除它,则可以覆盖Form
的另一种方法是createStatusBar()
。您只需返回一个空白容器即可。
@Override
protected Component createStatusBar() {
return new Container();
}
无论哪一个最适合你。
答案 1 :(得分:0)
更好地控制工具栏的行为和外观的另一种方法是访问其属性:
Form form = new Form (new FlowLayout(1));
Toolbar toolbar = form.getToolbar();
Button button = new Button ("Button");
Label labelToolbar = new Label ("Text");
toolbar.getAllStyles().setBgTransparency(0);
toobar.add (BorderLayout.CENTER , labelToolbar);
toobar.add (BorderLayout.NORTH , button);
toolbar.setUIID("MyToolBar");
form.show();