【发布时间】:2017-03-11 17:31:16
【问题描述】:
我们正在课堂上执行“维护者”计划,以使用 MySQL 和 Java NetBeans 管理数据库。我们很好,但我们想知道如何创建某种事件以在通过文本框/单击将信息插入/修改数据库时禁用“更新按钮”。
在执行项目时,我们可以通过在表的选中/点击文本框中写入/修改直接修改数据到MySQL的数据库中;修改完成后,我们需要按ENTER这样修改被写入,然后我们按Modificar按钮使更新生效。
我们想知道的是如何在文本框处于活动状态时将 Modificar 按钮切换为不可点击。因为如果我们在修改完成后不先按ENTER,在文本框处于活动/编辑状态时单击Update按钮会由于数据尚未生效而引发错误。
在这里,我们可以通过单击文本框(*红色框)来编辑信息,同时(在单击文本框并编辑信息时)我们希望“更新按钮”被禁用/不可点击(绿色圆圈)。
到目前为止,这是我们的事件代码,但不是我们想要的: (其中“btnactualizar”是它的更新按钮,“tabla_cliente”是包含文本框的表格)
private void tabla_clienteKeyPressed(java.awt.event.KeyEvent evt) {
if (evt.getKeyCode() == KeyEvent.VK_ENTER){
btnactualizar.setEnabled(true);
}
}
这是更新按钮:
private void btnactualizarActionPerformed(java.awt.event.ActionEvent evt) {
String Rut = String.valueOf(tabla_cliente.getValueAt(tabla_cliente.getSelectedRow(), 0));
String Nombre = String.valueOf(tabla_cliente.getValueAt(tabla_cliente.getSelectedRow(), 1));
String Apellido = String.valueOf(tabla_cliente.getValueAt(tabla_cliente.getSelectedRow(), 2));
String Patente = String.valueOf(tabla_cliente.getValueAt(tabla_cliente.getSelectedRow(), 3));
int conf = JOptionPane.showConfirmDialog(null, "Estas seguro de actualizar? ", "mensaje", JOptionPane.YES_NO_OPTION, JOptionPane.YES_NO_OPTION);
if (conf == JOptionPane.OK_OPTION) {
exeCliente.actualizar_Cliente(Rut, Nombre, Apellido, Patente);
}
}
这是更新方法:
public void actualizar_Cliente(String run,String nombre, String apellido, String patente)
{
try{
conectar();
String SQL = "UPDATE CLIENTE SET Nombre='"+nombre+"', Apellido='"+apellido+"', Patente='"+patente+"' WHERE Rut='"+run+"';";
sentencia.executeUpdate(SQL);
JOptionPane.showMessageDialog(null,"Datos Actualizados");
conexion.close();
sentencia.close();
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"Error:" +e.getMessage(),"Error",JOptionPane.ERROR_MESSAGE);
}
}
提前感谢您提供的任何答案。
【问题讨论】:
标签: java mysql swing jtable keyevent