【问题标题】:Creating a JTable from multiple Array lists [closed]从多个数组列表创建 JTable [关闭]
【发布时间】:2013-12-29 19:58:47
【问题描述】:

在一个名为数据库的类中;有 三个 String ArrayLists 名为 firstNamesurnamegenderArrayLists 中的元素是平行的。例如,surname(1) 将是 firstName(1) 的姓氏。

我想知道如何在JTable 中显示这些ArrayLists。所有ArrayLists 都显示在不同的列中。

【问题讨论】:

标签: java arrays swing arraylist jtable


【解决方案1】:
  • 使用 DefaultTableModel
  • 将该模型设置为表格
  • 使用addRow 接受Object[]Vector 参数向模型添加行

String[] columnNames = {"First Name", "Surname", "Gender"};
DeafultTableModel model = new DefaultTableModel(columnNames, 0);
JTable table = new JTable(model);

然后添加您的列表

List<String> firstnames = new ArrayList<>();
List<String> surnames = new ArrayList<>();
List<String> genders = new ArrayList<>();

for (int i = 0; i < firstname.size(); i++){
    Object[] row = { firstnames.get(i), suenames.get(i), genders.get(i) };
    model.addRow(row);
}

见:DefaultTableModel javadoc | How to use Tables tutorial

【讨论】:

    【解决方案2】:

    ArrayLists 中的元素是并行的。

    为什么?创建一个包含这 3 个属性的自定义 Person。然后将Person 对象添加到ArrayList。然后你可以创建一个合适的 TableModel 来显示Person 对象。

    您可以查看Row Table Model 以获得更通用的解决方案。 JButtonTableModel.java 示例代码将让您了解如何为您的 Person 类自定义模型。

    或者您可以使用 Swing 教程中的示例来创建完全自定义的 PersonTableModel。

    【讨论】:

    • 我之所以不这样做是因为这是一个用户可以从程序中编辑的数据库。
    • @user3144389,这不是理由。没有理由无法更新 Person 对象中的数据。您只需添加一个 setter 方法。我给了你一个可行的例子。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 2021-07-31
    • 2019-08-15
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多