2011-07-26 24 views
-1

私は最初にサイズ変更されたTabFolderを持っています。 TabFolderの下にはTabItemがあり、その下にあるTabItemはボタンです。 ButtonはTabFolderのサイズを継承しているため、巨大です。ボタンのサイズを変更する最も良い方法は何ですか? button.setBounds(...)を使用しても動作しません。ここでEclipse RCPで子要素のUI要素をサイズ変更

は、コードスニペットです:

public void createPartControl(Composite parent) { 
    Composite container = new Composite(parent, SWT.NONE); 

    TabFolder tabFolder = new TabFolder(container, SWT.NONE); 
    Dimension dim = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); 



    TabItem tbtmNewItem = new TabItem(tabFolder, SWT.NONE); 
    tbtmNewItem.setText("1"); 

    TabItem tbtmBrowse = new TabItem(tabFolder, SWT.NONE); 
    tbtmBrowse.setText("3"); 

    Button btnNewButton = new Button(tabFolder, SWT.BORDER | SWT.CENTER); 
    btnNewButton.setAlignment(SWT.CENTER); 
    tbtmBrowse.setControl(btnNewButton); 
    btnNewButton.setText("Push"); 


    tabFolder.setBounds(0, 0,dim.width-10,dim.height-10); 

    createActions(); 
    initializeToolBar(); 
    initializeMenu(); 
    this.setPartName("Home"); 


} 
+0

あなたの 'Dimension dim = java.awt ...'行は、SWTコントロールではあまり使用されません。 'Display'オブジェクトのメソッドを使います。 –

答えて

0

解決策が見つかりました。タブのコントロールからボタンを削除しました。

削除:

tbtmBrowse.setControl(btnNewButton); 

ボタンが独立して、サイズ変更またはnullレイアウトを使用する場合setBoundsを使用することができます。

0

ですからTabItemに設定されたコントロールがCompositeでしたか?またはButton

ボタンのサイズを制御するのは、Compositeを作成し、TabItemに設定することでした。次に、Compositeにボタンを追加できます。コンポジットにレイアウトを設定して、ボタンの配置方法を制御します。レイアウトの詳細については、http://www.eclipse.org/articles/article.php?file=Article-Understanding-Layouts/index.htmlを参照してください。

EDIT:

それを使用するには、タブのフォルダ間で複合して、ボタンを挿入します。

Composite page = new Composite(tabFolder, SWT.NONE); 
page.setLayout(new GridLayout(1, false)); 
Button btnNewButton = new Button(page, SWT.BORDER | SWT.CENTER); 
btnNewButton.setAlignment(SWT.CENTER); 
btnNewButton.setText("Push"); 
tbtmBrowse.setControl(page); 

あなたは子コントロールのサイズを制御するためのレイアウトを使用して...この場合には、あなたのボタン。 「レイアウトについて」を参照してください。

+0

私のコードに関しては、私はそれを適応させることはできませんが、記事のおかげで。コードスニペットを投稿しました。 – codix

+0

tabFolderの境界を設定することはできません。その場合、Workbenchは常にtabFolderをリセットします。 –

関連する問題