我想顯示一個表格部分內的SWT表,但我有列調整大小和滾動的問題。SWT分段表&滾動
我附加了一些示例代碼,可以放在Eclipse插件的ViewPart中(3.7是我使用的版本)。如果你運行代碼,並調整列的權利,該表獲得一個水平滾動條(這是我想要的)。
現在,如果我摺疊該部分(單擊「部分標題」左側的箭頭),該視圖將獲得一個水平滾動條(我不想)。再次展開該部分,視圖滾動仍然存在,現在表格不再有一個。
我正在尋找一種方法(可能是嵌套複合材料的一些可怕的組合)來停止表比視圖更廣泛,並會感謝任何建議。
public class ExampleView extends ViewPart {
/** Note: other fields/methods removed to condense snippet */
private FormToolkit toolkit;
private ScrolledForm scrolledForm;
public void createPartControl(Composite parent) {
parent.setLayout(new FillLayout());
toolkit = new FormToolkit(parent.getDisplay());
scrolledForm = toolkit.createScrolledForm(parent);
scrolledForm.setExpandHorizontal(true);
scrolledForm.setText("Form Title");
scrolledForm.getBody().setLayout(new FillLayout());
// here's the modification for the solution
scrolledForm.getBody().setLayout(
new BoundedLayout(new FillLayout(), true));
final Section section = toolkit.createSection(scrolledForm.getBody(),
Section.DESCRIPTION | Section.TITLE_BAR | Section.TWISTIE
| Section.EXPANDED);
section.addExpansionListener(new ExpansionAdapter() {
public void expansionStateChanged(ExpansionEvent e) {
scrolledForm.reflow(true);
}
});
section.setText("Section Title");
final Table table = toolkit.createTable(section, SWT.FULL_SELECTION);
TableViewer viewer = new TableViewer(table);
table.setLinesVisible(true);
table.setHeaderVisible(true);
table.setItemCount(10);
TableColumn col = new TableColumn(table, SWT.NONE);
col.setText("Column A");
col.setWidth(150);
col.setResizable(true);
col.setMoveable(true);
TableColumn col2 = new TableColumn(table, SWT.NONE);
col2.setText("Column B");
col2.setWidth(150);
col2.setResizable(true);
col2.setMoveable(true);
section.setClient(table);
}
}
次要更新一些討厭的上下的反思黑客 - 我從源頭上看到,調用'section.setLayout(新FillLayout的());第 – 2012-03-29 14:03:41