Может кто-нибудь сказать мне, как изменить размер моей таблицы, если я перетащу границу оболочки. Другими словами, я хочу, чтобы конец моей таблицы был подключен к оболочке, чтобы при изменении размера оболочки следовала таблица. Также у меня проблема с кнопками. Мне нужно, чтобы они были расположены в правом нижнем углу, под таблицей, но что бы я ни установил для выравнивания (GridData.HORIZONTAL_ALIGN_BEGINNING или новых GridData (SWT.END, SWT.END, false, false) или новых GridData (SWT.END, SWT.BOTTOM, false, false) все то же самое, что и вывод) устанавливает две мои кнопки слева внизу и одну справа внизу. Вот код и картинки таблицы:
try {
display = new Display();
} catch (Exception ex) {
ex.printStackTrace();
}
shell = new Shell(display);
shell.setLayout(new GridLayout());
GridLayout layout = new GridLayout();
shell.setLayout(layout);
Composite composite = new Composite(shell, SWT.NONE);
// Create a composite to hold the children
GridData gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL | GridData.FILL_BOTH);
composite.setLayoutData(gridData);
// Set numColumns to 3 for the buttons
GridLayout layout1 = new GridLayout(3, false);
layout1.marginWidth = 4;
composite.setLayout(layout1);
int style = SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL |
SWT.FULL_SELECTION | SWT.HIDE_SELECTION;
final int NUMBER_COLUMNS = 6;
table = new Table(composite, style);
GridData gridData1 = new GridData(GridData.FILL_BOTH);
gridData1.grabExcessVerticalSpace = true;
gridData1.horizontalSpan = 3;
table.setLayoutData(gridData1);
table.setLinesVisible(true);
table.setHeaderVisible(true);
String[] titles = { methodHeader, messageHeader, parametersHeader, resultHeader, deltaHeader, assertionHeader};
for (int i = 0; i < titles.length; i++) {
TableColumn column = new TableColumn(table, SWT.LEFT, i);
column.setText(titles[i]);
table.getColumn(i).pack();
}
addDataToTableModel(methodList);
GridData gridData2 = new GridData(SWT.END, SWT.END, false, false);
gridData2.widthHint = 80;
buttonOk = new Button(composite, SWT.PUSH | SWT.CENTER);
buttonOk.setText(ok);
buttonOk.setLayoutData(gridData2);
buttonCancel = new Button(composite, SWT.PUSH | SWT.CENTER);
buttonCancel.setText(cancel);
/*GridData gridData3 = new GridData(SWT.END, SWT.END, false, false);
gridData3.widthHint = 80;*/
buttonCancel.setLayoutData(gridData2);
buttonHelp = new Button(composite, SWT.PUSH | SWT.CENTER);
buttonHelp.setText(help);
/*GridData gridData4 = new GridData(SWT.END, SWT.END, false, false);
gridData4.widthHint = 80;*/
buttonHelp.setLayoutData(gridData2);
2 кнопки слева, 1 справа.
EDIT1:
Пробовал использовать разные GridData для каждой кнопки:
GridData gridData2 = new GridData(SWT.END, SWT.END, false, false);
gridData2.widthHint = 80;
buttonOk = new Button(composite, SWT.PUSH | SWT.CENTER);
buttonOk.setText(ok);
buttonOk.setLayoutData(gridData2);
buttonCancel = new Button(composite, SWT.PUSH | SWT.CENTER);
buttonCancel.setText(cancel);
GridData gridData3 = new GridData(SWT.END, SWT.END, false, false);
gridData3.widthHint = 80;
buttonCancel.setLayoutData(gridData3);
buttonHelp = new Button(composite, SWT.PUSH | SWT.CENTER);
buttonHelp.setText(help);
GridData gridData4 = new GridData(SWT.END, SWT.END, false, false);
gridData4.widthHint = 80;
buttonHelp.setLayoutData(gridData4);
Тот же результат для кнопок.