0

DefaultTableModelを作成するメソッドを作成し、そこにレコードを追加します。モデルをJTableに設定すると、データ行が空白になります。スクロールした後、データは正しく表示されます。

これを回避して、最初の瞬間からデータを表示するにはどうすればよいですか?

編集:javax.swing.table.DefaultTableModelをインポートしました->これは正しいですか?

private DefaultTableModel _dtm;

private void loadTable(Vector<Member> members) {
    loadTableModel();

    try {
        lbl_state.setText("Please wait");

        for (Member actMember : members) {
            String gender = "";
            if (actMember.getGender() == MemberView.MEMBER_MALE) {
                gender = "männlich";
            } else {
                gender = "weiblich";
            }

            _dtm.addRow(new Object[]{
                        actMember.getNname(),
                        actMember.getVname(),
                        actMember.getCity(),
                        actMember.getStreet(),
                        actMember.getPlz(),
                        actMember.getMail(),
                        actMember.getPhonenumber(),
                        actMember.getBirthdayString(),
                        actMember.getStartDateString(),
                        gender,
                        actMember.getBankname(),
                        actMember.getAccountnumber(),
                        actMember.getBanknumber(),
                        actMember.getGroup().toString(),
                        (actMember.hasAccess() ? "JA" : "NEIN"),
                        actMember.getWriteDateString(),
                        (actMember.hasDrinkAbo() ? "JA" : "NEIN")
                    });
        }
    } catch (Exception ex) {
        System.err.println(ex.getMessage());
    }

    tbl_results.setModel(_dtm);
}

private void loadTableModel() {
    _dtm = new DefaultTableModel(new Object[]{"Nachname",
                "Vorname",
                "Ort",
                "Straße",
                "PLZ",
                "E-Mail",
                "Telefon",
                "Geburtsdatum",
                "Beitrittsdatum",
                "Geschlecht",
                "Bankname",
                "Kontonummer",
                "Bankleitzahl",
                "Gruppe",
                "hat Zugriff",
                "Einschreibdatum",
                "Getränkeabo"}, 0);

    tbl_results.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
}
4

3 に答える 3

2

簡単な答えは、それが機能するはずだということです。追加のアクションを実行する必要はありません。

コードのやり方では、それが機能しない理由はわかりません。私は自分の例でそれを試したところですが、うまくいきます。

ただし、次のことを確認してください。

  • 正しくJTable追加されますJScrollPane
  • パネルにJScrollPane正しく追加されます
  • モデルを右に設定していますJTable
于 2012-10-28T16:19:57.040 に答える
0

単純なコードを使用して「チート」してスクロールをシミュレートするか、テーブルにデータを入力した後にフレームを再描画することができます。たぶんこれをチェックしてください:JTable挿入後にテーブルモデルを更新する方法削除またはデータを更新します。

于 2012-10-28T16:14:51.740 に答える
0

テーブルは見えませんでした

コードのすべての行をチェックしたところ、テーブルが表示されないように設定されていることがわかりました。データを追加して表示できるように設定した場合のみ。そのため、データを表示して行を選択できませんでした。

于 2012-11-06T19:39:33.553 に答える