我寫了一個方法,它創建了我的DefaultTableModel,然後我將添加我的記錄。 當我將模型設置爲JTable時,數據行是空白的。滾動數據後顯示正確。僅在滾動後顯示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);
}
爲更好地幫助發佈一個[SSCCE](http://sscce.org/),否則這裏的一切都可能拍攝到黑暗中, – mKorbel
是的,在這裏,SSCCE是非常必要的,因爲所示的代碼沒有指出任何特定的問題。 –
這可能是由EDT違規問題造成的。確保在添加數據之前將數據添加到表格模型中,如果您在添加數據之前設置了表格模型,或者在填充模型後將模型設置爲EDT模型 – MadProgrammer