2013-03-09 178 views
1

我在JTable的2列中有一個JCheckboxes的JTable。假設列A和列B是JComboBox中的列。列A的JCheckbox項目是靜態的,可以進行硬編碼。但是,列B的JComboBox值的項目是動態的。我想要做的是,當用戶啓動應用程序時,列A的JcomboBox應該具有靜態值,並且它應該在組合框中顯示默認選定值爲「---選擇---」jtable中的動態jcombobox渲染

即I將組合框設置爲[「 - Select」,「X」,「Y」,「Z」]

另外,在列B的JComboBox中應該顯示默認值爲「Please Wait」過一段時間後它會動態更新。在此之前,它必須顯示「請稍候」。

經過一些用戶操作,我想用動態值更新列B的JComboBox。即使在這一點上,列B的JcomboBox值依賴於列A的JcomboBox選定項目。

我能夠動態更新這些值,但該JComboBox單元的渲染未按預期工作。

我曾嘗試以下,

Enumeration<TableColumn> c = myTable.getColumnModel().getColumns(); 
     int i = 0; 
     while (c.hasMoreElements()) { 
      TableColumn column = c.nextElement(); 
      column.setCellRenderer(new ComboBoxCellRenderer(i)); 
      i++; 
     } 



    private static class ComboBoxCellRenderer extends JComboBox implements TableCellRenderer { 

     public ComboBoxCellRenderer(int column) { 
      // for (int i = 0; i < elements.length; i++) { 
      if (column == 0) { 

       addItem("--Select--"); 
       addItem("X"); 
       addItem("Y"); 
       addItem("Z"); 

      } 
     } 

     @Override 
     public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { 
      setSelectedItem(value); 
      return this; 
     } 
    } 

如果我用這個代碼,那麼我無法選擇從JComboBo的項目。即使我選擇,它也沒有被選中。

我目前使用下面鏈接中提到的代碼。

Stackoverflow

這將大大幫助我,如果有人舉一個例子代碼這一點。

在此先感謝。

回答