1

こんにちは、私はJavaが初めてで、簡単なto doリストアプリを作成して練習しています。

今まではすべてうまくいきましたが、1 つの簡単なことに問題があります。画面上の値を表形式で印刷する方法

       To Do     Date added
Delete nothing   1-1-2012
Delete something 2-2-2013
Delete test      3-2-2012

println を実行することで、コンソールのすべてのレコードを既に取得しています

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

私は MVC デザインでこれをすべて作成しましたが、予想どおり、私の VIEW は空です..ビューの助けを借りて JFrame でこれを印刷する最良の方法は何ですか?

4

2 に答える 2

3

System.out.println();フレームに何かを印刷するために使用することはできません。JTable代わりに使用してください:

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;

public class Reshad {

    public static void main(String [] args){
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                //Create frame
                JFrame frame = new JFrame();
                //Create table
                JTable table = new JTable();
                //Create table model (DefaultTableModel in this case)
                DefaultTableModel model = new DefaultTableModel(new Object[][]{},new String[]{"To do","Date added"});
                //set model
                table.setModel(model);
                //To populate table call this method from model:
                model.addRow(new Object[]{"something","1-1-2012"});

                //Create scroll pane
                JScrollPane scrollPane = new JScrollPane(table);
                //Add scroll pane to center of your frame

                frame.add(scrollPane, BorderLayout.CENTER);
                frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                frame.pack();
                frame.setVisible(true);
            }
        });
    }

}
于 2012-12-26T23:03:37.017 に答える
3

次のように、DefaultTableModelを設定します。

public class TodoModel extends DefaultTableModel {
    public TodoModel(ResultSet rs) {
        this.dataVector = new Vector<Vector<String>>();
        for(rs.first();!rs.isAfterLast(); rs.next()) {
             Vector<String> row = new Vector<String>();
             row.add("Delete?");
             row.add(rs.getString(1));
             row.add(rs.getString(2));
             this.dataVector.add(row);
        }
        this.columnIdentifiers = new Vector<String>();
        this.columnIdentifiers.add("");
        this.columnIdentifiers.add("To Do");
        this.columnIdentifiers.add("Date added");
    }
}

このインスタンスをJTableコンストラクターに渡すと、ゴールデンになるはずです。乗り方を教えてください。

于 2012-12-26T22:58:41.007 に答える