我有一个TabFolder,最初是调整大小的。TabFolder下面是一个TabItem, TabItem下面是一个Button。按钮继承了TabFolder的大小,所以它很大。调整按钮大小的最佳方法是什么?使用button.setBounds(…)不起作用
下面是代码片段: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");
}
我找到了一个解决方案。我只是把按钮从选项卡的控件中移除了。
删除:
tbtmBrowse.setControl(btnNewButton);
按钮现在可以独立调整大小或使用setBounds当使用null布局
所以你在TabItem
上设置的控件是Composite
?还是Button
?
控制按钮大小的方法是创建Composite
并将其设置在TabItem
上。然后你可以添加你的按钮(s)到Composite
。然后在合成上设置布局来控制按钮的布局方式。有关布局的更多详细信息,请参阅http://www.eclipse.org/articles/article.php?file=Article-Understanding-Layouts/index.html。
要使用它,您需要在选项卡文件夹和按钮之间插入一个组合:
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);
你使用布局来控制子控件的大小…在这种情况下,你的按钮。