如何在表格中,选中表格中的一行,
然后就引发一个事件来获取这一行的数据?

解决方案 »

  1.   

    建议你在javadoc上查一下 ListSelectionModel,这个就是实现选择和获取数据的
      

  2.   

    呵呵,一个小时,JTable的RowSelectionChanged做的太含蓄了。import java.awt.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import javax.swing.table.*;public class TestSimpleJTable {
        public static void main(String[] args) {
            String[][] data = {{"A", "B"}, {"C", "D"}};
            String[] colName = {"First", "Last"};        JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        final JTextField field = new JTextField();
            JTable table = new JTable(data, colName){
                public void valueChanged(ListSelectionEvent e) {
                    super.valueChanged(e);                if (!this.isVisible()) {
                        return;
                    }                ListSelectionModel sm = 
                        (ListSelectionModel)e.getSource();
                    int row = sm.getLeadSelectionIndex();                int colCount = this.getColumnCount();
                    String[] sa = new String[colCount];                for (int col=0; col<colCount; col++) {
                        sa[col] = (String)this.getValueAt(row, col);
                    }                String s = "";
                    for (int i=0; i<sa.length; i++) {
                        s += sa[i] + "\t";
                    }                field.setText(s);
                }
            };        table.setPreferredSize(
                new Dimension(200, 200));        Container container = frame.getContentPane();
            container.add(table, BorderLayout.CENTER);
            container.add(field, BorderLayout.PAGE_END);        frame.pack();
            frame.setVisible(true);
        }
    }