Java SWT: как использовать несколько макетов на один композит? - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть класс, который расширяет Composite, и я хочу иметь заголовок (в данном случае метку), за которым следуют три элемента управления в отдельной строке следующим образом:

Название

[Кнопка] ТЕКСТ [КНОПКА]

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

Как добавить заголовок (метку) вверху, а затем три элемента управления внизу?

public class PageControl extends Composite {

    private Button nextPage;
    private Button previousPage;
    private Text text;
    private Label label;

    public PageControl(Composite parent, int style) {
        super(parent, style);
        GridLayout gridLayout = new GridLayout();
        gridLayout.numColumns = 3;
        gridLayout.makeColumnsEqualWidth = false;

        previousPage = new Button(this, style);
        previousPage.setText("Previous");
        previousPage.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER));

        text = new Text(this, SWT.SINGLE | SWT.BORDER);
        GridData gridData = new GridData(GridData.VERTICAL_ALIGN_CENTER);

        GC gc = new GC(text);
        gridData.minimumWidth = gc.textExtent("123456890", 0).x;
        text.setTextLimit(10);
        text.setLayoutData(gridData);

        nextPage = new Button(this, style);
        nextPage.setText("Next");
        nextPage.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_CENTER));

        Display display = Display.getCurrent();
        Color white = display.getSystemColor(SWT.COLOR_WHITE);
        this.setBackground(white);
        setLayout(gridLayout);
    }
}

1 Ответ

0 голосов
/ 02 ноября 2018

Просто сделайте метку, охватывающую три столбца:

Label label = new Label(this, SWT.LEFT);
label.setText("title");

label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 3, 1));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...