【问题标题】:Inserting vector rows into a JTable?将向量行插入 JTable?
【发布时间】:2017-05-03 03:23:23
【问题描述】:

我正在尝试将向量中的项目添加到我的 JTable 中,但我似乎无法正确处理。 JTable 仅显示我数据库中的第一行值,并且它们都同时显示在同一列中。将单个列值插入表中时如何分隔它们?以及如何一次将多行值放入表中?

connect = DriverManager.getConnection(url,user,pass);
        System.out.println("Connected to database.\n");

        statement = connect.createStatement();
        ResultSet result = statement.executeQuery("SELECT * FROM aboyer_tickets_1");

        //get values for table
        System.out.println("Adding data to table model...\n");

        Vector<Vector<Object>> data = new Vector<Vector<Object>>();
        while (result.next()) {//model
            Vector<Object> row = new Vector<Object>();//row

            for (int columnIndex = 1; columnIndex <= 6; columnIndex++) {
                row.add(result.getObject(columnIndex));  
            }
            System.out.println(row + "\n");
            data.add(row);
            model.addRow(data);
        }

        System.out.println("Done.\n");

控制台输出: 已连接到数据库。

Adding data to table model...

[1, 531961, user1, M, PH 109 Computer wont turn on, O]

[2, 502492, user1, H, wifi connectivity issue, O]

[3, 469432, admin, L, mouse replacement - MSV, O]

[4, 140627, user1, H, Lost login for WH 121 computer, O]

Done.

表格中的输出(尽我所能):

             1                |  2  |  3  |  4  |  5  |  6  
[1, 531961, user1, M, PH.., O]
[1, 531961, user1, M, PH.., O]
[1, 531961, user1, M, PH.., O]
[1, 531961, user1, M, PH.., O]

【问题讨论】:

  • 尝试使用Swingworker ,因为加载数据库是一项长期任务,EDT 会有问题
  • model.addRow(data) 应该是model.addRow(row),否则你将添加一个带有Vector 作为数据组件的列

标签: java mysql swing vector jtable


【解决方案1】:

所以,基于JavaDocs for DefaultTableModel#addRow(Vector)

在模型末尾添加一行。除非指定了 rowData,否则新行将包含空值。将生成正在添加的行的通知。

model.addRow(data) 应该是model.addRow(row)

【讨论】:

  • 是的,非常感谢!愚蠢的错误..:)
猜你喜欢
  • 1970-01-01
  • 2011-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-14
  • 2014-08-11
  • 1970-01-01
  • 2018-03-26
相关资源
最近更新 更多