0

そのため、現在、プログラムの GUI を作成しています。カスタム AbstractTableModel で JTables を使用して、さまざまな LinkedLists のコンテンツでそれらを埋めています。しかし、JTable を GUI クラスに追加し、そこで LinkedList クラスを初期化すると、必要な LinkedList ではなくなります。データベース クラスに保存した LinkedList Studentlist が必要です。テーブルにそれを伝えるにはどうすればよいですか?GUI コードはまだすべて作成中であり、現在テストしているだけなので、実際には表示できません。

私の他の質問は、これが私の AbstractTableModel です:

public class StudentTableModel extends AbstractTableModel {

public static final String[] columnNames = { "ID", "First Name",
        "Last Name" };
private LinkedList<Student> data;

public StudentTableModel(LinkedList<Student> data) {
    this.data = data;
}

@Override
public int getColumnCount() {
    return columnNames.length;
}

@Override
public String getColumnName(int column) {
    return columnNames[column];
}

@Override
public int getRowCount() {
    return data.size();
}

@Override
public Object getValueAt(int rowIndex, int columnIndex) {
    Student student = data.get(rowIndex);
    if (student == null) {
        return null;
    }
    switch (columnIndex) {
    case 0:
        return student.getID();
    case 1:
        return student.getFirstname();
    case 2:
        return student.getLastname();
    default:
        return null;
    }
}

}

生徒がリストに追加されたときにテーブルを自動的に更新するには、コードに何か追加する必要がありますか?

前もって感謝します。

4

2 に答える 2

1

生徒がリストに追加されたときにテーブルを自動的に更新するには、コードに何か追加する必要がありますか?

TableModelStudent が追加されたときに Student オブジェクトをリストに渡し、それをリストに追加するようなメソッドを作成します。使用しているためAbstractTableModel、データ変更後に適切なイベントを発生させる必要があります。

private void addStudent(Student student) {
    data.add(student);
    fireTableDataChanged();
}

JTable を GUI クラスに追加し、そこで LinkedList クラスを初期化すると、必要な LinkedList ではなくなります。データベース クラスに保存した LinkedList Studentlist が必要です。

テーブル モデルを作成している間に、StudentList をクエリし、そのリストをテーブル モデル コンストラクターに送信します。

于 2013-04-10T10:08:39.423 に答える