1

我有一个名为 Database 的类,其中包含一个名为 applications 的 arrayList。arrayList 申请人中的每条记录都是申请人详细信息的arrayList。(所以 Database 类包含 arrayLists 的 arrayList)。

我还有一个名为 GUI 的类,其中包含一个 JTable:

String[] columnNames = {"Application number",
                                "Program",
                                "Name",
                                "Date",
                                "Accepted?"};

Object[][] data = {Database.applicants};

每当我编译时,它都会说:“不能从静态上下文中引用非静态变量申请者”

任何关于我可能需要做什么的指示都将不胜感激。

提前致谢。

4

3 回答 3

0

尝试考虑 Vector 的;它们更具动态性,您可以向它们添加 String[] 或 List 行。尝试这个:

public class Database {

    private static Vector columnsName;
    private static Vector data;

    public static Vector getColumnsNames() {
        if (null == columnsName) {
            columnsName = new Vector();
            columnsName.add("Program Number");
            columnsName.add("Program Name");
            columnsName.add("Program Date");
        }
        return columnsName;
    }

    public static Vector getData() {
        if (null == data) {
            populateData();
        }
        return data;
    }

    private static void populateData() {
        data = new Vector();
        String[] firstRow = {
            "22", "Program", "Name", "12/12/2012", "yes"
        };
        data.add(firstRow);
    }
}

然后从 GUI 中,您可以准备模型:

        JTable table = new JTable();
        table.setModel(new DefaultTableModel(Database.getColumnsNames(), Database.getData()));
于 2013-02-11T18:30:40.503 回答
0

摆脱错误

public static List applicants ...

但这可能不是您想要做的。

于 2013-02-11T16:52:08.107 回答
0

我需要将arrayList 转换为List 吗?

您正在尝试将 ArrayList 分配给 Array,因此您需要将 ArrayList 中的数据复制到 Array。

或者另一种选择是创建一个使用 ArrayList 保存模型数据的自定义 TableModel。请参阅 Swing 教程中有关创建表模型的部分。

于 2013-02-11T18:25:12.500 回答