JTable----想做个这样的--更改选中项后回车,数据能从后台输出

解决方案 »

  1.   

    大家给改改吧  要求更改选中项后回车,数据能从后台输出package Test;
    import java.awt.*;
    import java.awt.event.*;
    import java.util.Scanner;
    import javax.swing.*;
    import javax.swing.event.ChangeEvent;   
    import javax.swing.event.ChangeListener;
    import javax.swing.event.TableModelEvent;
    import javax.swing.table.AbstractTableModel;public class TestTable1 {

    public static void main(String[] args){

    new TestTable1().jinit();
    }

    public void jinit(){
    JFrame jf = new JFrame();
    JPanel jp = new JPanel();
    MyTable mt = new MyTable();
    JTable table = new JTable(mt);
    JScrollPane sp = new JScrollPane(table);
    jp.add(sp);
    jf.add(jp);
    jf.setSize(450,200);
    jf.setLocation(200,100);
    jf.setVisible(true);
    }
    public void tableChanged(TableModelEvent e) {
    int row = e.getFirstRow();
    int column = e.getColumn();
    System.out.println("fgsdas");
    //table.repaint();
    }
    }class MyTable extends AbstractTableModel { Object[][] p = {
    { "阿呆", "Taipei", new Integer(66), new Integer(32),
    new Integer(98)},
    { "阿瓜", "ChiaYi", new Integer(85), new Integer(69),
    new Integer(154)} }; String[] n = { "姓名", "居住地", "语文", "数学", "总分" }; public int getColumnCount() {
    return n.length;
    } public int getRowCount() {
    return p.length;
    } public String getColumnName(int col) {
    return n[col];
    } public Object getValueAt(int row, int col) {
    return p[row][col];
    } public Class getColumnClass(int c) {
    return getValueAt(0, c).getClass();
    } public boolean isCellEditable(int rowIndex, int columnIndex) {
    return true;
    } public void setValueAt(Object value, int row, int col) {
    p[row][col] = value;
    fireTableCellUpdated(row, col);
    } public void mySetValueAt(Object value, int row, int col) {
    p[row][col] = value;
    }
    }
      

  2.   


    重新setTablecell
    再给你的tableCell加个事件监听enter,在enter的actionperformed里调用stopCellEditing()将值写入就行
    public boolean stopCellEditing()
    {
        JTable aTable = this.editingTable;
        int rowNo = aTable.getEditingRow();
        String flag = "";
        if (rowNo != -1)
        {
            flag = (String) aTable.getValueAt(rowNo, 0);
        }    if (flag.indexOf("电压等级") > -1)
        {
            this.delegate.setValue(levelBox.getSelectedItem());
        }
    }