如何从多个 ArrayList 创建 JTable?

How do you create a JTable from multiple ArrayLists?

ArrayList<String> mediaCompany = new ArrayList<String>();
ArrayList<Double> rank = new ArrayList<Double>();

// SAMPLE CODE
static void displayTable(ArrayList<String> mediaCompany, ArrayList<Double> rank) {

        // ADD TABLE
        String [] columnNames = {"Media Platform", "Ranking"};
        DefaultTableModel model = new DefaultTableModel(columnNames, 0);
        JTable table = new JTable(model);

        for (int i = 0; i < mediaCompany.size(); i++) {
            Object[] row = {mediaCompany.get(i), rank.get(i)};
            model.addRow(row);
        }

    }

所以我是 Java 的新手,想学习如何创建一个 table,其中 someStringX 的元素显示在控制台的列中,x 的元素显示在控制台的行中,例如那:

someStringX Value of X
someStringX x1
someStringX2 x2
someStringX3 x3
someStringX4 x4
... ...

示例: mediaCompany = [脸书,Google,推特]

排名 = [4, 7, 2]

mediaCompany rank
Facebook 4
Google 7
Twitter 2

到目前为止,尽管导入了适当的包,我还是无法启动 JTable 和 运行。

这是一个示例代码,可以满足您的需要:

public static void main(String[] args) {
    List<String> mediaCompany = List.of("Facebook", "Google", "Twitter");
    List<Integer> rank = List.of(4, 7, 2);

    DefaultTableModel model = populateTableModel(mediaCompany, rank);
    createTable(model);
}

static DefaultTableModel populateTableModel(List<String> mediaCompany, List<Integer> rank) {
    String[] columnNames = { "Media Platform", "Ranking" };
    DefaultTableModel model = new DefaultTableModel(columnNames, 0);

    for (int i = 0; i < mediaCompany.size(); i++) {
        Object[] row = { mediaCompany.get(i), rank.get(i) };
        model.addRow(row);
    }

    return model;
}

static void createTable(DefaultTableModel model) {
    JFrame jFrame = new JFrame();
    JTable jTable = new JTable(model);
    JScrollPane sp = new JScrollPane(jTable);
    jFrame.add(sp);
    jFrame.setSize(300, 400);
    jFrame.setVisible(true);
}

我使用“List.of”来填充列表,这是一个 Java9 功能,您可以使用任何其他方式填充它们。

populateTableModel() 方法负责检索已填充所有列名和行的 DefaultTableModel。

createTable() 方法将实际生成 table。