enter image description here我在将数据库加载到jTable时遇到了一个小问题,字符串应该为空,然后变为null,而我只是不知道如何解决?我是相对较新的,在=)之前没有使用对象和GUI,如果您看图片,前3行应该看起来像数字4(数据库中的1-3和新添加的4)。通过此处的注释,应更改行???
public DefaultTableModel DatenbankLaden() {
DefaultTableModel dtm = new DefaultTableModel() {
@Override
public Class getColumnClass(int column) {
for (int row = 0; row < getRowCount(); row++) {
Object o = getValueAt(row, column);
if (o != null) {
return o.getClass();
}
}
return Object.class;
}
};
try {
populate(dtm);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Laden Fehlgeschlagen");
}
for (int i = 0; i < dtm.getRowCount(); i++) { \\here
for (int j = 0; j < dtm.getColumnCount(); j++) {
Object ob = dtm.getValueAt(i, j);
if (ob == null || ob.toString().isEmpty()) {
dtm.setValueAt("na", i, j);
}
}
}
return dtm;
}
private TableModel populate(DefaultTableModel dtm) {
try {
dtm.addColumn("Auftragsnummer");
dtm.addColumn("Auftragsdatum");
dtm.addColumn("Auftraggeber");
dtm.addColumn("Telefon");
dtm.addColumn("E-mail");
dtm.addColumn("Lieferadresse");
dtm.addColumn("Beschreibung");
dtm.addColumn("Fertigungszeit");
dtm.addColumn("Fertigungsbeginn");
dtm.addColumn("Fertiggestellt");
dtm.addColumn("Lieferzeit");
dtm.addColumn("Versenden");
dtm.addColumn("Versendet");
dtm.addColumn("Beim Kunden");
dtm.addColumn("Auftragerledigt");
con = DriverManager.getConnection("jdbc:derby://localhost:1527/meinedb", "root", "root123");
String sql = "SELECT * FROM ROOT.AUFTRÄGE ";
Statement S = con.createStatement();
rst = S.executeQuery(sql);
while (rst.next()) {
nummer++;
dtm.addRow(new Object[]{
rst.getInt(1),
rst.getString(2),
rst.getString(3),
rst.getString(4),
rst.getString(5),
rst.getString(6),
rst.getString(7),
rst.getInt(8),
rst.getString(9),
rst.getBoolean(10),
rst.getInt(11),
rst.getString(12),
rst.getBoolean(13),
rst.getString(14),
rst.getBoolean(15)
});
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, ex.getMessage());
}
return dtm;
}
如果您能回答我这个问题,那就太好了