Изменение размера дочернего элемента пользовательского интерфейса в Eclipse RCP - PullRequest
0 голосов
/ 26 июля 2011

У меня есть 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");


}

Ответы [ 2 ]

0 голосов
/ 27 июля 2011

Я нашел решение. Я только что убрал кнопку с вкладки.

Удалены:

tbtmBrowse.setControl(btnNewButton);

Теперь размер кнопки можно изменить независимо или с помощью setBounds при использовании нулевого макета.

0 голосов
/ 26 июля 2011

То есть элемент управления, установленный на TabItem, был Composite?Или Button?

Чтобы контролировать размер кнопки, нужно создать Composite и установить его на TabItem.Затем вы можете добавить свои кнопки к 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);

Вы используете макеты для управления размерами дочерних элементов управления ... в данном случае, вашей кнопки.См. Статью Понимание макетов.

...