Java 使用JButton填充JTable仅在第一次使用时有效
我用jButton jbBuscarActionPerformed填充了jTable jtBusqueda。第一次按预期工作,但第二次更改值时不工作 我的按钮代码是:Java 使用JButton填充JTable仅在第一次使用时有效,java,swing,jtable,jbutton,Java,Swing,Jtable,Jbutton,我用jButton jbBuscarActionPerformed填充了jTable jtBusqueda。第一次按预期工作,但第二次更改值时不工作 我的按钮代码是: private void jbBuscarActionPerformed(java.awt.event.ActionEvent evt) { //get data from database clsDBBu
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;
}
尝试添加
jtBusqueda.repaint();
注意:您没有按照预期的方式使用准备好的语句。读一下。从安全的角度来看,您所做的是潜在的危险的,这就是为什么我要提到它:是您的init组件;调用Netbeans为您生成的自动生成方法?如果是这样,它就不是在做你认为它在做的事情。如果不是,那是干什么的?糟糕的代码风格。如果你在英语网站上请求帮助,你也应该写英语代码。