在不同方法上使用DefaulTableModel在jtable上插入行

时间:2013-09-29 20:57:14

标签: java sql swing jtable tablemodel

我想将不同方法中的列添加或插入到一个表中。无法清楚地解释它,但我会向您展示我的代码以便理解......例如。

(....)

DefaultTableModel dtm = new DefaultTableModel();
JTable table = new JTable();


Constructor(){

     table.setModel(dtm);

     (.....)

}


public void methodOne(){

        String id = num.getText();

        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"));

            data.add(row);

        } // loop

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

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

}

public void methodTwo(){

     (.....)

     rs = stat.executeQuery("SELECT * FROM record where idNum ='"+id+"';");

        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);

        } // while



}

行内的值是我要在我的表上添加的值,我对如何识别我没有任何想法..我希望它是这样的:

首先,当你运行java时,它将自动创建一个表

http://i1023.photobucket.com/albums/af355/guiacustodio/javaaaaaaaaaaaaaaaaaaaaaaa_zpse9a22225.jpg

我有一个按钮和文本字段我在文本字段输入数字,即

[PAY BUTTON] TextField:[ _ _100]

我点击了按钮,这将会发生:

http://i1023.photobucket.com/albums/af355/guiacustodio/javaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa_zps43879eab.jpg

1 个答案:

答案 0 :(得分:0)

首先,您使用的数据Vector是在methodOne中定义的,因此无法通过methodTwo访问相同的数据。

其次不是因为在表模型中有数据被添加到表模型中,你必须调用其中一个触发gui中刷新事件的方法,通常是在tablemodel上调用fireTableChanged方法添加数据后。

Thridly:有一个名为GlazedLists的有趣库,可以自动处理很多这些事情!