2017-03-18 7 views
2

タイトルバー(ツールバー)の高さを制御する方法を理解できません。以下のコードは動作しません。コード名1:タイトルバー(ツールバー)の高さを制御

((Label)form.getToolbar().getTitleComponent()).setIcon(image); // sets the image 

// below does not work 
((Label)form.getToolbar().getTitleComponent()).setHeight(50); 
form.getToolbar().setHeight(50); 

タイトルバーに余分な空白があるようです。

私はスクリーンショットを追加しました:

enter image description here

を追加しました:

私はあなたの提案に応じて、私のコードを変更した、それはまだ動作しません:

@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ビルダーを使用していないことに注意してください。

答えて

3

あなたはFormshouldPaintStatusBar()をオーバーライドすることで、ステータスを取り除くことができ、TitleBarは、その内容プラスパディング&余白の大きさになります。

@Override 
protected boolean shouldPaintStatusBar() { 
    return false; 
} 

またはすべての側面に0パディングを持っているあなたのテーマでStatusBar UIIDを変更することもできます。これは、カスタムツールバーを使用していない限り、アプリ全体に影響します。

単一のフォームでそれを取り除きたい場合は、別の方法のFormを無効にすることができます。createStatusBar()です。空のコンテナを返すことができます。

@Override 
protected Component createStatusBar() { 
    return new Container(); 
} 

いずれかの方が最適です。

+0

動作しません。上記の私の質問を修正し、提案したコードを追加しました。私はGUIビルダーを使用していないことに注意してください。 – ikevin8me

+1

少し答えを明確にしました。ダイヤモンドはフォームのオーバーライドとテーマの変更を意味しました。このスペースは*重要*であり、実際には削除したくないかもしれないことに注意してください... iOSでは、アプリケーションがステータスバーの下にペイントしているので、クロック、バッテリーなどのために余裕があります。 –

+0

。だから、私はそのスペースを取り除くべきではありません。 – ikevin8me

関連する問題