0

私はJavaが初めてで、いくつかの新しいことを練習しています..データベースでの作業を開始しました。そのため、MVC パターンを使用して To Do リスト アプリケーションを作成しました。

私のモデルでは、すべての結果を取得します。私の見解では、このデータを素敵なテーブルとして出力しようとしています。問題は、ハードコードされたコードを除いて出力が得られないことです..

これが私の見解のコードです

JTable table = null;

public ToDoListView(ToDoListModel model) {
    this.model = model;

    setBackground(Color.WHITE);

    JTable table = new JTable();

    DefaultTableModel tableModel = new DefaultTableModel(new Object[][]{},new String[]{"To do","Date added"});

    table.setModel(tableModel);

    // this one below is outputted
    tableModel.addRow(new Object[]{"something","1-1-2012"});

    // this should give me all the results.. 
    for(int i = 0; i < model.getRows().size(); i++) {
        tableModel.addRow(model.getRows());
        System.out.println("added");
    }

    add(table);

}

私のモデルではこれを持っています

private Vector<String> rijen = new Vector<String>();

    public void getValue() {
    Connection con = null;
    Statement st = null;
    ResultSet rs = null;
     try {

        con = db.connectToAndQueryDatabase("test", "root", "root");
        System.out.println("connection established");

        st = con.createStatement();
        String query = "SELECT id, item, datum FROM toDoList";
        rs = st.executeQuery(query);

        while(rs.next()) {
            System.out.println(rs.getInt("id") + "\n" + rs.getString("item") + "\n" + rs.getDate("datum"));
            rijen.add(rs.getInt("id") + "");
            rijen.add(rs.getString("item"));
            rijen.add(rs.getDate("datum") + "");
        }

    public Vector<String> getRows() {
    return rijen;
}

これはすべての関連コードです..何が欠けているのか、何が間違っているのかわかりません。誰かが私がそれを解決する方法を教えてもらえますか:)?

4

2 に答える 2

2
// This JTable attribut ...
JTable table = null;

public ToDoListView (ToDoListModel model) {
    this.model = model;
    setBackground (Color.WHITE);

    // is hidden by this local variable: 
    JTable table = new JTable();
于 2012-12-27T00:24:00.787 に答える
2

あなたのToDoModelクラスでは、すべてのデータを1つの大きなデータに追加しますVector

    while(rs.next()) {
        System.out.println(rs.getInt("id") + "\n" + rs.getString("item") + "\n" + rs.getDate("datum"));
        rijen.add(rs.getInt("id") + "");
        rijen.add(rs.getString("item"));
        rijen.add(rs.getDate("datum") + "");
    }

次に、それをループして、Vectorそれらすべてのアイテムを に追加しTableModelますが、そのループは正しくありません

for(int i = 0; i < model.getRows().size(); i++) {
    tableModel.addRow(model.getRows());
    System.out.println("added");
}

その行のデータだけではなく、常にベクトル全体を追加します。

それを @user unknown の回答と組み合わせると、問題を解決できる可能性があります

于 2012-12-27T00:27:09.360 に答える