0

defaulttablemodel に行を追加する方法を教えてください。結果セットを使用してデータベースからデータを取得し、取得しrs.getString()ます。また、ボタンを押すとすぐにこのテーブルが自動的に更新されるようにします。

public void table(){

    try{

        rs = stat.executeQuery("SELECT * FROM payments;");

        Vector<String> header = new Vector<String>();

        header.add("PAYMENT"); 
        header.add("AMOUNT");
        header.add("MODIFIER");
        header.add("DATE MODIFIED");

        Vector<Vector<Object>> data = new  Vector<Vector<Object>>();

        while(rs.next()) {

            Vector<Object> row = new Vector<Object>();

            row.add(rs.getString("description"));
            row.add(rs.getString("amount")); 
            row.add(rs.getString("remarks")); 
            row.add(rs.getString("date"));


            dtm.addRow(row);

        } // loop

        dtm.setDataVector(data , header);
        JScrollPane scrollPane = new JScrollPane(table);

        scrollPane.setBounds(0,0,490,250);
        panel.add(scrollPane);
        validate();

    }catch(Exception e){
        System.out.println("Error in table: "+e);
    }//try and catch

}
4

1 に答える 1

1

dataベクターを使用して、すべての結果/行を保存しdtm.setDataVector(data , header);、ループの後に保存できます。

コードを変更する

dtm.addRow(row);

data.add(row);

基本的に、コードは

    Vector<Vector<Object>> data = new  Vector<Vector<Object>>();

    while(rs.next()) {

        Vector<Object> row = new Vector<Object>();

        row.add(rs.getString("description"));
        row.add(rs.getString("amount")); 
        row.add(rs.getString("remarks")); 
        row.add(rs.getString("date"));


        data.add(row); // add each result/row to data Vector

    } // loop

    dtm.setDataVector(data , header); // load all the table rows to DefaultTableModel
于 2013-09-29T15:46:59.910 に答える