JTable显示来自Mysql表的同一行

时间:2015-12-11 04:55:54

标签: java mysql swing jtable

我正在显示方法是构造了JTable,错误是在for (int i = 1; i <= numero_columnas; i++)循环中添加行时,或者DefaultTableModel model = new DefaultTableModel();声明的方式,我找不到错误

public void verTablaTable (Connection db, String nombre) throws Exception{
    Statement stmt=db.createStatement();
    ResultSet sst_ResultSet = stmt.executeQuery("SELECT * FROM "+nombre);
    ResultSetMetaData md = sst_ResultSet.getMetaData();
    int numero_columnas = md.getColumnCount();
    DefaultTableModel model = new DefaultTableModel();
    for (int i=1;i<=numero_columnas; i++){
        model.addColumn(md.getColumnName(i));
    }
    JTable tabla =new JTable(model);
    DefaultTableModel model1 = (DefaultTableModel) tabla.getModel();
    Vector row = new Vector();
    row.setSize(numero_columnas);
    while (sst_ResultSet.next()){
        for (int i = 1; i <= numero_columnas; i++){
            row.set(i-1,sst_ResultSet.getString(i));
        }
        model1.addRow(row);
    }
    tabla.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    JScrollPane sp_vertabla = new JScrollPane(tabla);
    sp_vertabla.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    sp_vertabla.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    sp_vertabla.setBounds(50,30,700,500);
    JPanel cont_vertabla = new JPanel(null);
    cont_vertabla.setPreferredSize(new Dimension(750,600));
    cont_vertabla.add(sp_vertabla);
    f_vertabla.setContentPane(cont_vertabla);
    f_vertabla.pack();
    f_vertabla.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    //f_vertabla.setResizable(false);
    f_vertabla.setVisible(true);
    f_vertabla.addWindowListener(this);
}

这是JTable看起来的方式 JTable displaying the same row

上面pic中列出的行是mysql表中的最后一行

1 个答案:

答案 0 :(得分:2)

尝试添加行

Vector row = new Vector();

在while循环中。