【问题标题】:Adding values from a List<Class> to Jtable将值从 List<Class> 添加到 Jtable
【发布时间】:2016-01-19 03:59:54
【问题描述】:

您好,我的问题是以下我有一个特定类的列表,我想将其中的值绑定到 jtable(现在添加它们的顺序并不重要) 列表中的类如下

public HighScore(int score, int amountofplayers, String playerName,String dateString) {
    this.score = score;
    this.amountofplayers = amountofplayers;
    this.playerName = playerName;
    this.dateString = dateString;
}

返回列表的函数是

   public ArrayList<HighScore> GetHighScores()
{
    ArrayList<HighScore> highscores = new ArrayList<HighScore>();
    //get highscores from databse

    //insert some test values
    highscores.add(new HighScore(125, 2, "Piet","20-10-2015"));
    highscores.add(new HighScore(167, 2, "Henk", "19-10-2015"));
    highscores.add(new HighScore(278, 2, "Jan", "11-10-2015"));
    return highscores;
}

所以现在我想将所有这些高分添加到我的 Jtable1 中,该 Jtable1 位于 jpannel 中。最简单/最有效的方法是什么

【问题讨论】:

标签: java swing arraylist jtable


【解决方案1】:

如果您必须创建 JTable 对象,最简单的方法是使用其构造函数之一。

有两个直接接受数据的JTable构造函数(SimpleTableDemo使用第一个):

JTable(Object[][] rowData, Object[] columnNames)
JTable(Vector rowData, Vector columnNames)

rowData 必须将您的对象放在您希望它们显示的位置。比如要获取第二行第一列的对象,JTable会执行rowData[1][0](遵循rowData[row][col]的形式)。

【讨论】:

    【解决方案2】:

    您应该创建一个自定义 TableModel 来保存您的 HighScore 对象。

    查看Row Table Model。它将向您展示如何:

    1. 从头开始创建自定义 TableModel
    2. 使用通用 TableModel 并仅实现几个方法来反映您的 HighScore 对象的数据。

    【讨论】:

      【解决方案3】:

      您应该使用 DefautTableModel,创建它的一个实例。然后使用 for 循环将您的高分传递给 Object[],然后使用 DefautTableModel addRow 方法添加行。

      查看Populate JTable Using ListC12-H22-O11 答案以获取示例

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-30
        • 2013-12-17
        • 2012-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多