2016-07-11 36 views
0

我需要在Eclipse RCP中爲樹組件實現自定義列。像Combo這樣的列或可以顯示另一個選擇對話框的選擇按鈕。默認情況下,Eclipse樹列僅支持原始文本字符串。我想用另一個控件替換簡單的TextBox(或標籤)。我怎樣才能做到這一點? 以下示例實現了一個簡單的文本單元格。如何在Eclipse RCP中實現自定義樹列和單元格

Display display = new Display(); 
Shell shell = new Shell(display); 
shell.setLayout(new FillLayout()); 
Table table = new Table(shell, SWT.BORDER); 
table.setHeaderVisible(true); 
table.setLinesVisible(true); 

for (int i = 0; i < 2; i++) { 
    new TableColumn(table, SWT.NONE); 
} 
table.getColumn(0).setText ("Task"); 
table.getColumn(1).setText ("Progress"); 
for (int i = 0; i < 40; i++) { 
    TableItem item = new TableItem(table, SWT.NONE); 
    item.setText("Task " + i); 
} 
table.getColumn(0).pack(); 
table.getColumn(1).setWidth(128); 
shell.pack(); 
shell.open(); 
while (!shell.isDisposed()) { 
    if (!display.readAndDispatch()) { 
     display.sleep(); 
    } 
} 
display.dispose(); 
+0

這實際上是一個SWT應用程序,而不是Eclipse RCP或插件。對於Eclipse,您可以將JFace TableViewer與OwnerDrawLabelProvider一起使用,對於SWT,您可以使用SWT.MeasureItem/PaintItem/EraseItem。 –

回答

0

如果你想要把控制那裏,這可能不是因爲你只能顯示文字(它本身是不完全正確),那是因爲你想要的內容可編輯。因此請使用單元編輯器1。你可以寫作教程https://eclipse.org/articles/Article-Table-viewer/table_viewer.htmlhttp://www.java2s.com/Tutorial/Java/0280__SWT/TableCellEditorComboTextandButton.htm

+0

「表編輯器」是否也適用於Tree? – Saeid

+0

這可能需要TreeEditor來自同一個包。不過,您的示例代碼使用Table類。 – nitind

+0

感謝您的回答。爲此,我決定使用Nebula項目。 (https://eclipse.org/nebula/) – Saeid