2015-12-11 2 views
0

Я показываю, что метод был построен JTable, ошибка заключается в добавлении строк внутри цикла for (int i = 1; i <= numero_columnas; i++) или способа объявления DefaultTableModel model = new DefaultTableModel();, я не могу найти ошибку ,JTable, отображающий ту же строку из таблицы Mysql


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


В строке перечислены в приведенной выше картинке, является последним в таблице тузд

+0

Вы используете один экземпляр «Вектор» и просто обновляете его содержимое, вместо этого вы должны использовать новый «Вектор» для каждой строки. – MadProgrammer

ответ

2

Try добавление строки

Vector row = new Vector(); 

внутри цикла while.

+0

Спасибо @Parasau, что было проблемой –

Смежные вопросы