2014-10-13 2 views
0

대화 상자와 TableViewer이 있습니다. I는 column3에 대용량 데이터가있는 경우모든 데이터가 표시되도록 SWT TableColumn의 크기를 조정하십시오.

// Resize the columns to fit the contents 
column1.getColumn().pack(); 
column2.getColumn().pack(); 
column3.getColumn().pack(); 

int column1Width = column1.getColumn().getWidth(); 
int column2Width = column2.getColumn().getWidth(); 
int column3Width = column3.getColumn().getWidth(); 

tableLayout.setColumnData(column1.getColumn(), new ColumnWeightData(0, rootObjFolderColumnWidth)); 
tableLayout.setColumnData(column2.getColumn(), new ColumnWeightData(0, column2)); 
tableLayout.setColumnData(column3.getColumn(), new ColumnWeightData(100, column3)); 

, 난 돈 '아래

Composite tableComposite = new Composite(parent, SWT.NONE); 
tableComposite.setLayout(new GridLayout(1, false)); 
tableComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,true)); 

TableViewer tableViewer = factory.buildTableViewer(tableComposite); 
Table table = tableViewer.getTable(); 
table.setLinesVisible(true); 
table.setHeaderVisible(true); 

column1= new TableViewerColumn(tableViewer, SWT.NONE); 
column1.getColumn().setText("Column1"); 
column1.getColumn().setResizable(false); 

column2= new TableViewerColumn(tableViewer, SWT.NONE); 
column2.getColumn().setText("Column2"); 
column2.getColumn().setResizable(false); 

column3= new TableViewerColumn(tableViewer, SWT.NONE); 
column3.getColumn().setText("Column3"); 
column3.getColumn().setResizable(false); 

tableLayout = new TableColumnLayout(); 
tableComposite.setLayout(tableLayout); 

layoutColumns(); 

테이블 레이아웃 설정 layoutColumns위한 코드()는 아래 내가 TableViewer를 구성하는데 사용되는 코드이며 완전한 텍스트를 보지 마라, 결국 나는 ... 결국. 하지만 전체 텍스트를 가로 스크롤 막대에 표시하고 싶습니다.

어떻게해야합니까?

답변

0

시도하십시오 :

table.setLayoutData(new GridData(GridData.FILL_BOTH)); 
//and then on each of the TableViewerColumn 
column1.getColumn().pack(); 

이 eclipsezone 포럼에서 this link에 따라입니다