1
JFaceを使用してカスタムダイアログを作成していますが、表示されない列に問題があります。ここに私のコードです。私が得るのは、列のないテーブルと、左の青い線です。これは、JFaceダイアログを拡張します。Eclipse - JFaceテーブルの列がカスタムダイアログに表示されない
@Override
protected Control createDialogArea(Composite parent)
{
Composite container = (Composite) super.createDialogArea(parent);
container.setLayout(new GridLayout());
addTableToDialog(container);
container.getShell().setSize(600, 400);
return container;
}
private void addTableToDialog(Composite container)
{
_tableViewer = new TableViewer(container, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
_tableViewer.getTable().setHeaderVisible(true);
_tableViewer.getTable().setLinesVisible(true);
_tableViewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
renderHeaders();
}
ます。private void renderHeaders(){
int bound = 1;
for (int header = 0; header < _headers.length; header++)
{
String tableHeader = _headers[header];
createTableViewerColumn(tableHeader, bound);
}
}
private TableViewerColumn createTableViewerColumn(String title, int bound)
{
final TableViewerColumn viewerColumn = new TableViewerColumn(_tableViewer, SWT.NONE);
final TableColumn tableColumn = viewerColumn.getColumn();
tableColumn.setText(title);
tableColumn.setResizable(true);
tableColumn.setMoveable(true);
_tableColumnLayout.setColumnData(tableColumn, new ColumnWeightData(bound));
return viewerColumn;
}
ここで、 '_tableColumnLayout'を定義していますか?これが 'TableColumnLayout'の場合、テーブルをその子として持つ' Composite'に設定する必要があります。 –
Gregさん、ありがとう、私はコンストラクタで 'TableColumnLayout'を定義していました。これをテーブルビューアを作成するときにローカルに定義するように変更しました。テーブルを保持する 'Composite'を作成するとき、レイアウトを' GridLayout() 'に設定していましたが、これを' TableColumnLayout'に変更しました。乾杯! –