我现在的表格有三列,通常用户新增数据时,只填第一列的值,现在我想当用户停止第一列的输入后,就用第一列的值为第二列和第三列赋个默认值,有哪位大虾知道这个要怎么弄啊?

解决方案 »

  1.   


    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.table.*;
    import javax.swing.event.*;public class TestTableFrame extends JFrame
    {
    private JTable table;
    private DefaultTableModel model;

    public TestTableFrame()
    {
    model = new DefaultTableModel(3, 3);
    model.addTableModelListener(new TableModelListener()
    {
    public void tableChanged(TableModelEvent event)
    {
    if (event.getColumn() == 0)
    {
    int row = event.getFirstRow();
    Object data = model.getValueAt(row, 0);
    model.setValueAt(data, row, 1);
    model.setValueAt(data, row, 2);
    }
    }
    });
    table = new JTable(model);

    add(new JScrollPane(table));
    }

    public static void main(String[] args)
    {
    JFrame frame = new TestTableFrame();
    frame.pack();
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    }
      

  2.   


    你的这种方法只实现了用第一列值去为第二列和第三列赋值,但是还是达到我的要求,其实应该用DefautCellEditor的stopCellEditing()方法,只要按照要求实现下这个方法,然后,当第一列停止编辑时,他会自动调用stopCellEditing()里的实现,然后做想要的操作,这里不止是赋值,还可以做校验,都是实时的!