如题,为什么我写的代码单元格内却是一大串字符串呢?                                    Vector<Object> v ;
JButton button ;
         v = new Vector<Object>() ;
         button = new JButton("登记") ;
        v.add("name") ;
        v.add("type") ;
        v.add((JButton)button) ;
        ((DefaultTableModel)table.getModel()).addRow(v) ;
希望高手们能为我解答一下~~

解决方案 »

  1.   

    你要改的应该是Render,和TableUI,不是改model
      

  2.   


    public class TestJTable {
    public static JTable table;
    public static void main(String[] args) {
    JFrame frame = new JFrame("Test Table Header");
    table = new JTable(6,6);
    TableRender render = new TableRender();
    table.setRowHeight(20);
    TableEditor editor = new TableEditor(new JTextField());
    table.getColumnModel().getColumn(1).setCellRenderer(render);
    table.getColumnModel().getColumn(1).setCellEditor(editor);
    editor.setClickCountToStart(0);
    JScrollPane pane = new JScrollPane(table);
    frame.setContentPane(pane);
    frame.setPreferredSize(new Dimension(500,500));
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
    }
    }
      

  3.   


    public class TableRender extends DefaultTableCellRenderer {
    public Component getTableCellRendererComponent(JTable table, Object value,
    boolean isSelected, boolean hasFocus, int row, int column) {
    if (row<0||column!=1)
    return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
    else {
    JButton label = new JButton("button");
    label.setPreferredSize(new Dimension(table.getColumnModel().getColumn(column).getPreferredWidth(),20));
    return label;
    }
    }
    }
      

  4.   


    public class TableEditor extends DefaultCellEditor {
    public TableEditor(JCheckBox checkBox) {
    super(checkBox);
    }
    public TableEditor(JComboBox comboBox) {
    super(comboBox);
    }
    public TableEditor(JTextField textField) {
    super(textField);
    }
    public Component getTableCellEditorComponent(JTable table, Object value,
    boolean isSelected, int row, int column) {
    if (row<0||column!=1)
    return super.getTableCellEditorComponent(table, value, isSelected,  row, column);
    else {
    JButton label = new JButton("button");
    label.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    JOptionPane.showMessageDialog(null, "test");
    }
    });
    label.setPreferredSize(new Dimension(table.getColumnModel().getColumn(column).getPreferredWidth(),20));
    return label;
    }
    }
    }