Search code examples
javaswingjtabletablemodeldefaulttablemodel

Building Java TableModel from list of results


Hi I have problems with populating a TableModel, I cannot understand what the problem is

here is my method

 private TableModel buildTableModel(List<Player> result) {
        // build the columns
        Vector<String> columnNames = new Vector<String>();
        //int columnCount = metaData.getColumnCount();
        //for (int column = 1; column <= columnCount; column++) {
        //    columnNames.add(metaData.getColumnName(column));
        //}

        columnNames.add("playerid");
        columnNames.add("squeezePlay");
        columnNames.add("weakShowdown");
        columnNames.add("numberOfPlays");
        columnNames.add("playsWithFriends");
        columnNames.add("suspend");
        columnNames.add("grade");


        // data of the table
        Vector<Vector<Object>> data = new Vector<Vector<Object>>();
        while (result.iterator().hasNext()) {
            Player player = result.iterator().next();

            Vector<Object> vector = new Vector<Object>();

             vector.add((Object) player.GetId());
             vector.add((Object) player.GetSqueezePlay());
             vector.add((Object) player.GetWeakShowdown());
             vector.add((Object) player.GetNumberOfPlays());
             vector.add((Object) player.GetPlaysWithFriends());
             vector.add((Object) player.GetSuspended());
             vector.add((Object) player.GetGrade());

             data.add(vector);
        }

        return new DefaultTableModel(data, columnNames);

    }

Note: with or without the Object casting, the table still doesn't work..

Please suggest any alternative solution to populate a TableModel.

Thanks!!


Solution

  • Every time you call result.iterator() you are reading the beginning of your List. Instead, use this:

    for (Player player : result)