2016-07-30 99 views
0

我遇到任何問題,任何人都可以幫助我。這是我的JTable,其中一列呈現在它的單元格中有一個組合框。這是我的表中的問題:當我單擊組合框時,它不會彈出。當我打印時,它將返回單元格的prev數據而不是組合框中的數據,並且它不顯示組合框讓用戶選擇。單擊JTable單元時組合框不會彈出

JTable的代碼:

public void setUpSportColumn(JTable table, TableColumn sportColumn) { 
    // Set up the editor for the sport cells. 
    JComboBox<String> comboBox = new JComboBox<String>(); 
    DefaultComboBoxModel<String> model = new DefaultComboBoxModel<String>(); 
    model.addElement("Snowboarding"); 
    model.addElement("Rowing"); 
    model.addElement("Knitting"); 
    model.addElement("Speed reading"); 
    model.addElement("Pool"); 
    model.addElement("None of the above"); 
    comboBox.setModel(model); 
    sportColumn.setCellEditor(new DefaultCellEditor(comboBox)); 

    ComboBoxTableCellRenderer renderer = new ComboBoxTableCellRenderer(); 
    renderer.setModel(model); 
    sportColumn.setCellRenderer(renderer); 
} 

image

+0

告訴我們你的代碼 –

+0

這裏的代碼,其當渲染完成的,如果我可以問anothe問題,我將數據從數據庫JTable中有沒有什麼事做與? –

回答

1

TableRenderDemo是如下修飾的完整,工作示例。

image

  1. 要查看編輯器更新TableModel,在MyTableModel啓用調試。

    private boolean DEBUG = true; 
    

    結果將在控制檯上顯示:顯示here讓表編輯器的方法的

    $ java TableRenderDemo 
    Setting value at 0,2 to None of the above (an instance of class java.lang.String) 
    New value of data: 
        row 0: Mary Campione None of the above 5 false 
        row 1: Alison Huml Rowing 3 true 
        row 2: Kathy Walrath Knitting 2 false 
        row 3: Sharon Zakhour Speed reading 20 true 
        row 4: Philip Milne Pool 10 false 
    
  2. 使用一個具有普通JComboBox的設計;上面說明了使用UIManager圖標接受的answer

    sportColumn.setCellRenderer(new DefaultTableCellRenderer(){ 
    
        @Override 
        public Component getTableCellRendererComponent(JTable table, Object value, 
          boolean isSelected, boolean hasFocus, int row, int column) { 
         JLabel label = (JLabel) super.getTableCellRendererComponent(table, 
          value, isSelected, hasFocus, row, column); 
         label.setIcon(UIManager.getIcon("Table.descendingSortIcon")); 
         return label; 
        } 
    }); 
    
+0

它是同樣的事情,它的工作時,當我看到演示和touturials但在我的代碼相同的東西 –

+2

請編輯您的問題,包括一個[mcve],再現您描述的問題。 – trashgod