如何向JTable中添加组件 如JCheckbox 和JComBox?
(例子要有注释哦!)

解决方案 »

  1.   

    jdk的demo中就有例子demo\jfc\SwingSet2
      

  2.   

    例如想做一个学生信息管理系统,可以从数据库中的学生信息进行添加,修改,删除,查询等操作,学生信息的显示使用了JTable,并且想在JTable的每一行记录的后面添加一个JButton用于删除此行记录(这个操作在网页上很常见),可如下操作:1.首先我们要渲染一个JTable中的单元格,要对它进行渲染的话要实现 TableCellRenderer接口,一般情况下我们是在继承JButton类的同时实现TableCellRenderer接口,这样就可以自己少写点方法,因为JBtton类中已经实现了TableCellRenderer中的大部分方法,我们需要实现
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)   
    该方法返回已经渲染好的组件,其中table是组件所在的JTable,value是组件的值,isSelected表示组件是否被选中,hasFocus表示是否获得焦点,row,column分别表示组件所在行与列2.经过第一步的操作,我们已经准备好了组件,现在就需要将其添加到JTable中,首先使用下列语句
    table.getColumn("XXX").setCellRenderer(new  MyTableRenderer());
    指定此列使用这个渲染后的组件,其中MyTableRenderer类是实现了TableCellRenderer接口的类,现在添加一个JButton, 可以看到它出现在JTable中了---------
    我只是转帖,希望有帮助
      

  3.   

    checbox,做成boolean数据。下拉条看这个,不复杂,应该能看懂吧。不懂再问。其实照着抄基本上就行。
    import java.util.Vector;
    import javax.swing.DefaultCellEditor;
    import javax.swing.JComboBox;
    import javax.swing.table.TableColumn;
    import javax.swing.JFrame;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    public class TableFrame extends JFrame{
        public TableFrame(){
            super();
            //弄一个table出来
            JTable table = new JTable();
            table.setModel(new javax.swing.table.DefaultTableModel(
                        new Object [][] {    //数据是几个空行
                            {null, null, null, null},
                            {null, null, null, null},
                            {null, null, null, null},
                            {null, null, null, null}
                        },
                        new String [] {   //以下是标题
                            "Title 1", "Title 2", "Title 3", "Title 4"
                        }
                    ));
        //弄一个下拉条出来
        Vector item = new Vector();
        item.add("1");
        item.add("2");
        item.add("3");
        item.add("4");
        item.add("5");
        item.add("5");
        JComboBox jComboBoxItem = new JComboBox(item);
        
        //下拉条改变时要做什么
        jComboBoxItem.addItemListener(new   ItemListener(){
                public   void   itemStateChanged(ItemEvent   ie)   {
                                    System.out.println(ie.getItem().toString());
                }
        });
        //把下拉条弄到table上
        TableColumn  tableColumn = table.getColumnModel().getColumn(1);
        tableColumn.setCellEditor(new DefaultCellEditor(jComboBoxItem));    
            
        //以下没什么用
            JScrollPane tablePanel = new JScrollPane(table);
            add(tablePanel);
            pack();
            setVisible(true);
        }
        public static void main(String[] args){
            TableFrame tableFrame = new TableFrame();
        }
    }