0
我填入jTable
並將其與jButton
jbBuscarActionPerformed
填充。它第一次按預期工作,但是當價值被改變(第二次)時,它不起作用。使用JButton填充JTable只能在第一次運行
我對按鈕的代碼是:
private void jbBuscarActionPerformed(java.awt.event.ActionEvent evt) {
//get data from database
clsDBBusca dbengine2 = new clsDBBusca();
try {
data2 = dbengine2.getBusqueda();
} catch (Exception ex) {
Logger.getLogger(clsCodif2.class.getName()).log(Level.SEVERE, null, ex);
}
//create header for the table
header2 = new Vector<String>();
header2.add("Cve"); //Cve
header2.add("Descripcion"); // Caracteristica Principal
jtBusqueda.setModel(new javax.swing.table.DefaultTableModel
(
data2, header2
)
initComponents();
}
public Vector getBusqueda()throws Exception
{
Vector<Vector<String>> resultadoVector = new Vector<Vector<String>>();
Connection conn = dbConnection();
PreparedStatement pre = conn.prepareStatement("SELECT Clave_Nueva, Descripcion_Especificaciones FROM famMat_Especificaciones WHERE Descripcion_Especificaciones like '%" + jtBuscaTexto.getText() + "%'");
ResultSet rs = pre.executeQuery();
while(rs.next())
{
Vector<String> resultado = new Vector<String>();
resultado.add(rs.getString(1)); //Cve
resultado.add(rs.getString(2)); //Descripcion de la busqueda
resultadoVector.add(resultado);
}
/*Close the connection after use (MUST)*/
if(conn!=null)
conn.close();
return resultadoVector;
}
注意:您沒有使用準備好的語句,他們應該被使用的方式。閱讀[這裏](http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html)。你在做什麼在安全角度上是潛在的危險,這就是爲什麼我提到它:) – kentcdodds
你的'initComponents();'調用一個Netbeans爲你生成的自動生成的方法嗎?如果是這樣,它不會做你認爲正在做的事情。如果不是,那是幹什麼的? – kentcdodds
糟糕的代碼風格。如果您在英文網站上請求幫助,您還應該編寫英文代碼。 – Stephan