1

私は、applicantsというarrayListを持つDatabaseというクラスを持っています。arrayList応募者の各レコードは、応募者の詳細のarrayListです。(したがって、DatabaseクラスにはarrayListsのarrayListが含まれます)。

JTableを含むGUIというクラスもあります。

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

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

コンパイルするたびに、「静的変数以外の申請者は静的コンテキストから参照できません」と表示されます。

私がする必要があるかもしれないことについてのどんなポインタも本当にありがたいです。

前もって感謝します。

4

3 に答える 3

0

エラーを取り除くには

public static List applicants ...

しかし、それはあなたがやりたいことではないかもしれません。

于 2013-02-11T16:52:08.107 に答える
0

arrayListをリストに変換する必要がありますか?

ArrayListを配列に割り当てようとしているため、データをArrayListから配列にコピーする必要があります。

または、別のオプションは、ArrayListを使用してモデルのデータを保持するカスタムTableModelを作成することです。テーブルモデルの作成に関するSwingチュートリアルのセクションを参照してください。

于 2013-02-11T18:25:12.500 に答える
0

ベクターを検討してみてください。それらはより動的であり、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 に答える