簡體   English   中英

SWT - 表與TableViewer

[英]SWT - Table vs. TableViewer

我正在使用SWT創建一個新項目。 我將在項目中有3或4個不同的表。 我對SWT很新,我發現自己要問我應該只使用Table還是應該是TableViewer

我想學習一些關於何時只使用Table以及何時TableViewer是最佳路徑的好指南。

  1. 使用TableViewer而不是Table什么好處?
  2. 所有表都應該有TableViewer嗎?
  3. 如果我的數據從表中工作,只是Table的最佳方式?

只是真的想要一些清晰度,所以當我創建項目時,我會以正確的方式做到這一點。

編輯

我創建了一個Tablemodel類,我將其用於第一個表。 createColumns方法專門用於該特定表。

是否可以擁有模板TableViewer類?
我可以將方法更改為更適用於不同的表嗎?

以下是該方法的片段:

private void createColumns() {

  String[] titles = { "ItemId", "RevId", "PRL", "Dataset Name", "EC Markup" };
  int[] bounds = { 150, 150, 100, 150, 100 };

  TableViewerColumn col = createTableViewerColumn(titles[0], bounds[0], 0);
  col.setLabelProvider(new ColumnLabelProvider() {
     public String getText(Object element) {
        if(element instanceof AplotDataModel.AplotDatasetData)
           return ((AplotDataModel.AplotDatasetData)element).getDataset().toString();
        return super.getText(element); 
        }
     }); 

  col = createTableViewerColumn(titles[1], bounds[1], 1);
  col.setLabelProvider(new ColumnLabelProvider() {
     public String getText(Object element) {
        if(element instanceof AplotDataModel.AplotDatasetData)
           return ((AplotDataModel.AplotDatasetData)element).getRev().toString();
        return super.getText(element); 
        }
     });

一般來說,我建議使用TableViewer 觀眾將使用Table照顧您自己必須做的大部分事情。 刪除,添加和移動項目更容易,也可以自定義項目的顯示方式。 對於查看者來說,處理點擊事件非常容易。

有幾種情況,我會使用沒有TableViewerTable 例如:當表僅用於顯示永不更改的靜態項集時。 在這種情況下, TableViewer可能會略高於頂部。

但是,您應該記住,您的項目可能會增長,並且您可能需要這些“簡單”表來執行更多操作,而不僅僅是顯示靜態項。 在這種情況下,您將不得不用一個查看器替換表,這將是很多工作。

所以在使用沒有TableViewerTable之前要三思而后行。

http://sunnyshekhar.blogspot.com/2013/04/creating-swt-table-below-i-will-try-to.html

在這里,我試圖解釋如何在swt中創建一個表。 我想用swt創建一個表說起來容易做起來難。 我們必須面對許多復雜問題。 實施有點難以理解。 但是我們在swt中提供了很多自定義功能。 另外需要注意的一點是,Swt是一個高於Os的層,因此在Swt中我們使用Os提供給我們的東西。 有時很難創建一個復選框並將其移動到單元格的中心。 在創建表時我遇到了很多類似的問題,但是你總是有黑客或解決方法。 在Swt中,我們有很好的定義類,如果你實現它提供了各種方法來使用表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM