将arrayList数据加载到JTable中

我正在尝试通过一种称为的方法设置项目,FootballClub到目前为止还可以。但是后来我从中创建了一个arrayList,但我不知何故找不到将这些信息存储到JTable中的方法。问题是我找不到设置固定行数的方法

这是我的代码:

上课开始联赛:

import javax.swing.*;

import javax.swing.table.*;

import java.awt.*;

public class startLeague implements LeagueManager{

//setting the frame and other components to appear

public startLeague(){

JButton createTeam = new JButton("Create Team");

JButton deleteTeam = new JButton("Delete Team");

JFrame frame = new JFrame("Premier League System");

JPanel panel = new JPanel();

frame.setSize(1280, 800);

frame.setVisible(true);

frame.add(panel);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

String col[] = {"Pos","Team","P", "W", "L", "D", "MP", "GF", "GA", "GD"};

panel.setLayout(new GridLayout(20, 20));

panel.add(createTeam);

panel.add(deleteTeam);

panel.add(new JLabel(""));

//JLabels to fill the space

}

}

足球俱乐部课程:

import java.util.ArrayList;

public class FootballClub extends SportsClub{

FootballClub(int position, String name, int points, int wins, int defeats, int draws, int totalMatches, int goalF, int goalA, int goalD){

this.position = position;

this.name = name;

this.points = points;

this.wins = wins;

this.defeats = defeats;

this.draws = draws;

this.totalMatches = totalMatches;

this.goalF = goalF;

this.goalA = goalA;

this.goalD = goalD;

}

SportsClub课程(摘要):

abstract class SportsClub {

int position;

String name;

int points;

int wins;

int defeats;

int draws;

int totalMatches;

int goalF;

int goalA;

int goalD;

}

最后是LeagueManager,它是一个接口:

import java.util.ArrayList;

public interface LeagueManager {

ArrayList<FootballClub> originalLeagueTable = new ArrayList<FootballClub>();

FootballClub arsenal = new FootballClub(1, "Arsenal", 35, 11, 2, 2, 15, 30, 11, 19);

FootballClub liverpool = new FootballClub(2, "Liverpool", 30, 9, 3, 3, 15, 34, 18, 16);

FootballClub chelsea = new FootballClub(3, "Chelsea", 30, 9, 2, 2, 15, 30, 11, 19);

FootballClub mCity = new FootballClub(4, "Man City", 29, 9, 2, 4, 15, 41, 15, 26);

FootballClub everton = new FootballClub(5, "Everton", 28, 7, 1, 7, 15, 23, 14, 9);

FootballClub tot = new FootballClub(6, "Tottenham", 27, 8, 4, 3, 15, 15, 16, -1);

FootballClub newcastle = new FootballClub(7, "Newcastle", 26, 8, 5, 2, 15, 20, 21, -1);

FootballClub south = new FootballClub(8, "Southampton", 23, 6, 4, 5, 15, 19, 14, 5);

}

有人能帮帮我吗?我已经尝试了好几天。谢谢。

回答:

“问题是我找不到设置固定行数的方法”

您无需设置行数。使用TableModel。一个DefaultTableModel特别。

String col[] = {"Pos","Team","P", "W", "L", "D", "MP", "GF", "GA", "GD"};

DefaultTableModel tableModel = new DefaultTableModel(col, 0);

// The 0 argument is number rows.

JTable table = new JTable(tableModel);

然后你就可以行到添加tableModelObject[]

Object[] objs = {1, "Arsenal", 35, 11, 2, 2, 15, 30, 11, 19};

tableModel.addRow(objs);

您可以循环添加Object []数组。

注意:JTable当前不允许使用输入数据作为实例化ArrayList。它必须是Vector或数组。

请参见JTable和DefaultTableModel。另外,如何使用JTable教程

“我从中创建了一个arrayList,但我不知何故找不到将这些信息存储到JTable中的方法。”

您可以执行以下操作来添加数据

ArrayList<FootballClub> originalLeagueList = new ArrayList<FootballClub>();

originalLeagueList.add(new FootballClub(1, "Arsenal", 35, 11, 2, 2, 15, 30, 11, 19));

originalLeagueList.add(new FootballClub(2, "Liverpool", 30, 9, 3, 3, 15, 34, 18, 16));

originalLeagueList.add(new FootballClub(3, "Chelsea", 30, 9, 2, 2, 15, 30, 11, 19));

originalLeagueList.add(new FootballClub(4, "Man City", 29, 9, 2, 4, 15, 41, 15, 26));

originalLeagueList.add(new FootballClub(5, "Everton", 28, 7, 1, 7, 15, 23, 14, 9));

originalLeagueList.add(new FootballClub(6, "Tottenham", 27, 8, 4, 3, 15, 15, 16, -1));

originalLeagueList.add(new FootballClub(7, "Newcastle", 26, 8, 5, 2, 15, 20, 21, -1));

originalLeagueList.add(new FootballClub(8, "Southampton", 23, 6, 4, 5, 15, 19, 14, 5));

for (int i = 0; i < originalLeagueList.size(); i++){

int position = originalLeagueList.get(i).getPosition();

String name = originalLeagueList.get(i).getName();

int points = originalLeagueList.get(i).getPoinst();

int wins = originalLeagueList.get(i).getWins();

int defeats = originalLeagueList.get(i).getDefeats();

int draws = originalLeagueList.get(i).getDraws();

int totalMatches = originalLeagueList.get(i).getTotalMathces();

int goalF = originalLeagueList.get(i).getGoalF();

int goalA = originalLeagueList.get(i).getGoalA();

in ttgoalD = originalLeagueList.get(i).getTtgoalD();

Object[] data = {position, name, points, wins, defeats, draws,

totalMatches, goalF, goalA, ttgoalD};

tableModel.add(data);

}

以上是 将arrayList数据加载到JTable中 的全部内容, 来源链接: utcz.com/qa/399267.html

回到顶部