我在这里试图做一个切换案例来发送数据到JTable但是它运行案例x,它不会向表发送任何东西。 我会把代码放在这里,如果你们能帮助我,我会感激不尽。
功能开关盒
private void gerar(int x) {
DefaultTableModel model = (DefaultTableModel) jTable1.getModel();
model.setRowCount(0);
Connection conn = null;
Statement stmt = null;
switch (x) {
case 1:
System.out.println("Case 1");
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object[][]{},
new String[]{
"Utilizador", "Password"
}
) {
boolean[] canEdit = new boolean[]{
false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit[columnIndex];
}
});
model.setRowCount(0);
try {
System.out.println("Try 1");
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
stmt = conn.createStatement();
String sql = "SELECT * FROM login";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String idd = rs.getString("UTILIZADOR");
String pass = rs.getString("PASSWORD");
model.addRow(new Object[]{idd, pass});
}
System.out.println("While 1");
rs.close();
stmt.close();
conn.close();
} catch (SQLException | ClassNotFoundException se) {
se.printStackTrace();
} finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
System.out.println("Case 6");
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object[][]{},
new String[]{
"Sigla", "Nome", "Faltas JustC", "Faltas InjustC", "Faltas JustS", "Faltas injustS", "DataIni", "DataFim", "Email"
}
) {
boolean[] canEdit = new boolean[]{
false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit[columnIndex];
}
});
model.setRowCount(0);
try {
System.out.println("Try 6");
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
stmt = conn.createStatement();
String sql = "SELECT * FROM cursos";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String idd = rs.getString("Sigla");
String pass = rs.getString("Nome");
int fjc = rs.getInt("FALTASJUSTIFICADASC");
int fijc = rs.getInt("FALTASINJUSTIFICADASC");
int fjs = rs.getInt("FALTASJUSTIFICADASS");
int fijs = rs.getInt("FALTASINJUSTIFICADASS");
int di = rs.getInt("DATA_INICIO");
int df = rs.getInt("DATA_FIM");
String em = rs.getString("EMAIL");
model.addRow(new Object[]{idd, pass, fjc, fijc, fjs, fijs, di, df, em});
}
System.out.println("While 6");
rs.close();
stmt.close();
conn.close();
} catch (SQLException | ClassNotFoundException se) {
se.printStackTrace();
} finally {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
break;
case 7:
break;
case 8:
break;
case 9:
break;
case 10:
break;
case 11:
break;
case 12:
break;
default:
break;
}
}
}
什么叫它
private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {
sv();
gerar(1);
id1.setEditable(false);
n1.setText("Utilizador:");
n2.setText("Password:");
n3.setVisible(false);
n4.setVisible(false);
n5.setVisible(false);
n6.setVisible(false);
n7.setVisible(false);
n8.setVisible(false);
n9.setVisible(false);
nn3.setVisible(false);
nn4.setVisible(false);
nn5.setVisible(false);
nn6.setVisible(false);
nn7.setVisible(false);
nn8.setVisible(false);
nn9.setVisible(false);
}
答案 0 :(得分:1)
它不会向表格发送任何内容,因为
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object[][]{},
new String[]{
"Utilizador", "Password"
}
) {
boolean[] canEdit = new boolean[]{
false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit[columnIndex];
}
});
会为表创建一个新的TableModel。 因此,当您稍后继续向现有模型中添加名为“model”的模型时,无人问津,因为它不再是表格的模型。