jtable在指定的单元格添加JComboBox
小弟不才,希望大虾们指点一下

解决方案 »

  1.   

    想要其中一个为combobox,其他为textfield 
    1,我发现用jtable   的   prepareEditor(),   没有效果,   ??? 2,于是用方法二继承DefaultCellEditor,覆写getTableCellEditorComponent(),   结果取不到值??? 附上部分代码: 
    public   class   TestTableCellEditor   extends   DefaultCellEditor   { 
            JComboBox   comboBox   =   new   JComboBox(new   String[]   { "a ",   "b "});         public   TestTableCellEditor   ()   { 
                    super(new   JTextField()); 
            }         public   Component   getTableCellEditorComponent(JTable   table, 
                                                                                                      Object   value, 
                                                                                                      boolean   isSelected, 
                                                                                                      int   row, 
                                                                                                      int   column)   { 
                    if   (row   ==   0   &&   column   ==   0)   { 
                            comboBox.setSelectedItem(value); 
                            return   comboBox; 
                    }   else   { 
                            return   super.getComponent(); 
                    } 
            } 

      

  2.   

    http://www.exampledepot.com/egs/javax.swing.table/ComboBox.html
      

  3.   

    http://www.crionics.com/products/opensource/faq/swing_ex/JTableExamples1.html
    lz可以看下这个,利用里面的eachrowrenderer和eachroweditor实例可以做到为一列的不同行添加不同的控件
      

  4.   

    JComboBox cb = new JComboBox();
                cb.addItem("1");
    cb.addItem("2");
                tab.getColumnModel().getColumn(0).setCellEditor(
                        new DefaultCellEditor(cb));
      

  5.   

    可以参考JDK根目录/demo/jfc/SwingSet2下的SwingSet2.jar中的实例,双击打开后,找到table的实例,,在Source Code标签面板中查看相关源码,其他控件的实例同理(JKD6.0新加了lookandfeel,有时间可研究)