请问如何实现该功能:当单元格处于可编辑状态时生成一个combobox?~~~~~~~~~~~~~~~~急~!!!

解决方案 »

  1.   

    import java.awt.BorderLayout;
    import java.awt.Component;import javax.swing.*;
    import javax.swing.table.DefaultTableModel;
    import javax.swing.table.TableModel;public class ComboBoxEditorTest {
        public static void main(String[] args) {
            TableModel model = new DefaultTableModel(10, 10);
            JTable table = new JTable(model);
            table.setDefaultEditor(Object.class, new ComboBoxEditor());
            JScrollPane sp = new JScrollPane(table);
            JFrame f = new JFrame();
            f.getContentPane().add(sp, BorderLayout.CENTER);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setSize(800, 600);
            f.setLocationRelativeTo(null);
            f.show();
        }
        
        private static class ComboBoxEditor extends DefaultCellEditor
        {
            public ComboBoxEditor()
            {
                super(new JComboBox());
            }        public Component getTableCellEditorComponent(JTable table,
                    Object value, boolean isSelected, int row, int column) {
                
                JComboBox comboBox = (JComboBox) editorComponent;
                comboBox.removeAllItems();
                for (int i = 0; i < row+1; i++) {
                    comboBox.addItem(String.valueOf(i));
                }
                return super.getTableCellEditorComponent(
                        table, value, isSelected,row, column);
            }
        }
    }