Java TableViewer列设置宽度百分比而不是像素

Java TableViewer列设置宽度百分比而不是像素,java,eclipse-plugin,swt,eclipse-rcp,tableviewer,Java,Eclipse Plugin,Swt,Eclipse Rcp,Tableviewer,TableViewerColumn类的setWidth方法采用整数类型,我真的想使用百分比,到底是这样做的,还是打包表格或其他什么?使用TableLayout布局表格,使用ColumnWeightData指定每列的“权重” 例如,权重为60/40的两列: TableViewer viewer = .... TableLayout layout = new TableLayout(); TableViewerColumn col1 = new TableViewerColumn(viewer,

TableViewerColumn
类的
setWidth
方法采用整数类型,我真的想使用百分比,到底是这样做的,还是打包表格或其他什么?

使用
TableLayout
布局表格,使用
ColumnWeightData
指定每列的“权重”

例如,权重为60/40的两列:

TableViewer viewer = ....

TableLayout layout = new TableLayout();

TableViewerColumn col1 = new TableViewerColumn(viewer, SWT.LEAD);
layout.setColumnData(col1.getColumn(), new ColumnWeightData(60));

TableViewerColumn col2 = new TableViewerColumn(viewer, SWT.LEAD);
layout.setColumnData(col2.getColumn(), new ColumnWeightData(40));

viewer.getTable().setLayout(layout);

使用
TableLayout
对表格进行布局,并使用
ColumnWeightData
指定每列的“权重”

例如,权重为60/40的两列:

TableViewer viewer = ....

TableLayout layout = new TableLayout();

TableViewerColumn col1 = new TableViewerColumn(viewer, SWT.LEAD);
layout.setColumnData(col1.getColumn(), new ColumnWeightData(60));

TableViewerColumn col2 = new TableViewerColumn(viewer, SWT.LEAD);
layout.setColumnData(col2.getColumn(), new ColumnWeightData(40));

viewer.getTable().setLayout(layout);

是的,你也可以打包桌子/树

for (final TreeColumn item : tree.getColumns()) {
  item.pack();
}

for (final TableColumn item : table.getColumns()) {
  item.pack();
}

这与Windows上的CTRL+NUM-PAD“+”键代码非常相似。

是的,您也可以打包表/树

for (final TreeColumn item : tree.getColumns()) {
  item.pack();
}

for (final TableColumn item : table.getColumns()) {
  item.pack();
}

这与Windows上的CTRL+NUM-PAD“+”键代码非常相似。

谢谢!我以前从未在tablelayout中使用ColumnWeightData,很遗憾WindowBuilder没有给我一个通过其界面执行的选项。谢谢!我以前从未在tablelayout中使用过ColumnWeightData,可惜WindowBuilder没有给我一个通过其界面执行的选项。