Eclipse RCP - JFace 对话框不显示按钮
Eclipse RCP - JFace dialog doesn't show buttons
我正在尝试创建一个自定义对话框,其中包含一个 TableViewer。它看起来像 Test/Preview 但当我实际上 运行 我的应用程序时,底部的按钮消失了。
Test/preview 当从 WindowBuilder 内部 运行ning 看起来像这样(在底部):
在应用程序中 运行ning 时,它看起来像这样:
这是对话框的源代码:
@Override
protected Control createDialogArea(Composite parent) {
Composite container = (Composite) super.createDialogArea(parent);
container.setLayout(new GridLayout(1, false));
Composite composite = new Composite(container, SWT.NONE);
composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
TableColumnLayout tcl_composite = new TableColumnLayout();
composite.setLayout(tcl_composite);
TableViewer tableViewer = new TableViewer(composite, SWT.BORDER | SWT.FULL_SELECTION);
table = tableViewer.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);
TableViewerColumn tableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE);
TableColumn tblclmnNewColumn = tableViewerColumn.getColumn();
tcl_composite.setColumnData(tblclmnNewColumn, new ColumnPixelData(150, true, true));
tblclmnNewColumn.setText("New Column");
table.getShell().setSize(710, 400);
return container;
}
不要在 Shell 上调用 setSize
你会覆盖布局计算的大小并导致按钮在对话框之外。
要控制 table 的大小,请在 table 网格数据上设置高度和宽度提示:
GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
data.widthHint = 710;
data.heightHint = 400;
table.setLayoutData(data);
我正在尝试创建一个自定义对话框,其中包含一个 TableViewer。它看起来像 Test/Preview 但当我实际上 运行 我的应用程序时,底部的按钮消失了。
Test/preview 当从 WindowBuilder 内部 运行ning 看起来像这样(在底部):
在应用程序中 运行ning 时,它看起来像这样:
这是对话框的源代码:
@Override
protected Control createDialogArea(Composite parent) {
Composite container = (Composite) super.createDialogArea(parent);
container.setLayout(new GridLayout(1, false));
Composite composite = new Composite(container, SWT.NONE);
composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
TableColumnLayout tcl_composite = new TableColumnLayout();
composite.setLayout(tcl_composite);
TableViewer tableViewer = new TableViewer(composite, SWT.BORDER | SWT.FULL_SELECTION);
table = tableViewer.getTable();
table.setHeaderVisible(true);
table.setLinesVisible(true);
TableViewerColumn tableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE);
TableColumn tblclmnNewColumn = tableViewerColumn.getColumn();
tcl_composite.setColumnData(tblclmnNewColumn, new ColumnPixelData(150, true, true));
tblclmnNewColumn.setText("New Column");
table.getShell().setSize(710, 400);
return container;
}
不要在 Shell 上调用 setSize
你会覆盖布局计算的大小并导致按钮在对话框之外。
要控制 table 的大小,请在 table 网格数据上设置高度和宽度提示:
GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
data.widthHint = 710;
data.heightHint = 400;
table.setLayoutData(data);