将List <class>中的值添加到Jtable

时间:2015-10-20 13:09:28

标签: java swing arraylist jtable

您好我的问题是下面我有一个特定类的列表我想将值绑定到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中,其中驻留在jpannel中。什么是最简单/最有效的方法

3 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:1)

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

结帐Row Table Model。它会告诉你如何:

  1. 从头开始创建自定义TableModel
  2. 使用通用TableModel,只需实现几种方法即可反映HighScore对象的数据。

答案 2 :(得分:0)

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

查看Populate JTable Using List C12-H22-O11答案作为示例