2011-10-14 103 views
1

我正在Vaadin框架中開發一個Web應用程序。 我有一個14列的表。最後一欄有三個圖標,我遇到的一個問題就是,如果表格的一半時間呈現最右邊的圖標,則會「垂直切割一半」。爲了避免這個問題,我打算給固定的寬度設置爲這個專欄,我認爲會根除這個問題,但是,沒有任何反應..setColumnWidth()似乎不工作

我使用的常規方法:

simCardTable.setColumnWidth(actionColumn, 135); 

然而,沒有問題是什麼值我設置爲列寬保持不變...有誰知道這是爲什麼?是因爲它是最後一列要添加的,因此沒有空餘空間..?

順便說一句,那是我爲特定寬度設置的唯一列,所有還原列都具有由列標題寬度或單元格內容指定的標準寬度。

任何幫助將不勝感激!

+0

你有沒有試過10000+價值? –

+0

@SamCasil不,我沒有。沒有真正看到這一點,因爲沒有任何迴應應該產生影響的價值觀。現在嘗試只是踢,並作爲預測它沒有任何區別 – AndroidHustle

回答

2

正如我的理解你的問題(「最後一列有三個圖標」),你使用ColumnGenerator來創建這個最後一列,並帶有圖標。如果我正確的,這意味着你創建某種自定義佈局與此圖標內,在這種情況下,你應該工作的:

final ColumnGenerator generator = new ColumnGenerator() { 
      private static final long serialVersionUID = 1L; 

      @Override 
      public Component generateCell(Table source, final Object itemId, Object columnId) { 
       final HorizontalLayout layout = new HorizontalLayout(); 
       layout.setSizeFull(); 

       Embedded icon1 = new Embedded(); 
       Embedded icon2 = new Embedded(); 
       Embedded icon3 = new Embedded(); 

       //Add some themeresource to embedded components 

       //Do some listners to this icons 

       layout.addComponent(icon1); 
       layout.addComponent(icon2); 
       layout.addComponent(icon3); 

       //Set column with 
       setColumnWidth(columnId, 100); 

       return layout; 
       } 
      }; 
+0

嗯......這是一個有趣的想法!當我明天回去工作時,我會嘗試一下! =) – AndroidHustle

+0

我所做的是我爲包含圖標的佈局設置了寬度,這與您推薦的幾乎完全相同! =) – AndroidHustle