在Swing表中获取数据库信息作为输出



我是Java新手,我正在练习一些新的东西。我已经开始使用数据库了。因此,我用MVC模式做了一个待办事项列表应用程序。

在我的模型中,我得到了所有结果。在我看来,我试图输出这个数据作为一个漂亮的表。问题是,除了一段硬编码的代码,我没有得到任何输出。

这是我的视图的代码

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

这是所有相关代码。我不知道我错过了什么,做错了什么。谁能告诉我怎么解决这个问题?

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

在您的ToDoModel类中,您将所有数据添加到一个大型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的答案结合起来,您可能能够解决您的问题

相关内容

  • 没有找到相关文章

最新更新