Buenas tengo un problema, tengo una base de datos llamada "proyecto" con una tabla unica que es "Insumo", en ella tengo 10 columnas con diferentes datos.
Y tengo que realizar un programa que pueda añadir datos, meterlos a la una tabla (JTable) y un par de cosas mas que no vienen al caso.
El tema es que puedo cargar la tabla con los datos ingresados en la base de datos una vez arranca el programa, pero cuando ya esta en ejecucion no puedo, intente poniendo un boton que realizara dicha accion pero no me salio, tambien intente que los datos ingresados en una de las ventanas (JDialog) se enviaran a la tabla (Que esta en un JDialog distinto al anterior)
Les dejo el codigo tanto de la clase Conexion, como de los 2 JDialog
package Logica;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.DefaultTableModel;
public class Conexion {
public static Conexion instancia;
private Conexion(){
String URL="jdbc:mysql://localhost/proyecto2bc"; try {
Class.forName ("com.mysql.jdbc.Driver").newInstance();
System.
out.
println("Conexion exitosa");
System.
out.
println(ex.
getMessage()); }
}
public static Conexion getInstancia()
{
if (instancia == null)
instancia = new Conexion();
return instancia;
}
try {
stm = con.createStatement();
res=stm.executeQuery("select * from insumo");
System.
out.
println(ex.
getMessage()); }
return res;
}
String query
="insert into insumo values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; pstm.setString(1, ID);
pstm.setString(2, Tipo);
pstm.setString(3, marca);
pstm.setString(4, version);
pstm.setString(5, modelo);
pstm.setString(6, potencia);
pstm.setDouble(7,tamaño);
pstm.setString(8, descripcion);
pstm.setInt(9, cantidad);
pstm.setInt(10, precio);
pstm.executeUpdate();
System.
out.
println(ex.
getMessage());; }
}
String query
="delete from libro where ID = ?"; pstm.setString(1, ID);
pstm.execute();
}
try {
boolean igual=false;
ResultSet rs
=stm.
executeQuery("select * from insumo"); while(rs.next()){
String ID
=rs.
getString("ID_Insumo"); String Tipo
=rs.
getString("tipo_Insumo"); String marca
=rs.
getString("marca"); String version
=rs.
getString("version"); String modelo
=rs.
getString("modelo"); String potencia
=rs.
getString("potencia"); String tamaño
=rs.
getString("LongitudCable"); String descripcion
=rs.
getString("descripcion"); String cantidad
=rs.
getString("cant_insumo"); String precio
=rs.
getString("precio"); String[] Fila
={ID, Tipo, marca, version, modelo, potencia, tamaño, descripcion, cantidad, precio
}; for(int i=0;i<modeloT.getRowCount(); i++){
int contador=0;
for(int j=0;j<modeloT.getColumnCount();j++){
if(Fila[j].equals(tabla)){
contador++;
}
if(contador==50){
igual=true;
}
}
}
if(!igual) modeloT.addRow(Fila);
}
System.
out.
println(ex.
getMessage()); }
}
}
JDialog que contiene la tabla
package Presentacion;
import java.sql.ResultSet;
import javax.swing.table.DefaultTableModel;
import Logica.*;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
public class frmArticulo
extends javax.
swing.
JDialog { static Conexion con = Conexion.getInstancia();
super(parent, modal);
String [] titulosinsumos
= {"ID",
"Tipo",
"Marca",
"Version",
"Modelo",
"Potencia",
"Tamaño",
"Descripcion",
"Cantidad",
"Precio" }; @Override
public boolean isCellEditable(int filas, int columnas) {
if(columnas == 10){
return true;
} else { return false;
}
}
};
try {
while (rs.next()){
String ID
[] = {rs.
getString(1),rs.
getString(2),rs.
getString(3),rs.
getString(4),rs.
getString(5),rs.
getString(6),
String.
valueOf(rs.
getFloat(7)),rs.
getString(8),
Integer.
toString(rs.
getInt(9)),
Integer.
toString(rs.
getInt(10))}; lista.addRow(ID);
}
}
initComponents();
tablaInsumo.setModel(lista);
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
tablaInsumo
= new javax.
swing.
JTable(); btnEliminar
= new javax.
swing.
JButton(); btnEditar
= new javax.
swing.
JButton(); btnAñadir
= new javax.
swing.
JButton(); btnSalir
= new javax.
swing.
JButton(); btnActualizar
= new javax.
swing.
JButton();
public void windowActivated
(java.
awt.
event.
WindowEvent evt
) { formWindowActivated(evt);
}
public void windowOpened
(java.
awt.
event.
WindowEvent evt
) { formWindowOpened(evt);
}
});
},
}
));
jScrollPane1.setViewportView(tablaInsumo);
btnEliminar.setText("Eliminar Articulo");
btnEditar.setText("Editar Articulo");
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) { btnEditarActionPerformed(evt);
}
});
btnAñadir.setText("Añadir Articulo");
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) { btnAñadirActionPerformed(evt);
}
});
btnSalir.setText("Salir");
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) { btnSalirActionPerformed(evt);
}
});
btnActualizar.setText("Actualizar");
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) { btnActualizarActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.
addComponent(btnEliminar, javax.
swing.
GroupLayout.
Alignment.
LEADING, javax.
swing.
GroupLayout.
DEFAULT_SIZE,
124,
Short.
MAX_VALUE) .
addComponent(btnEditar, javax.
swing.
GroupLayout.
Alignment.
LEADING, javax.
swing.
GroupLayout.
DEFAULT_SIZE, javax.
swing.
GroupLayout.
DEFAULT_SIZE,
Short.
MAX_VALUE) .
addComponent(btnAñadir, javax.
swing.
GroupLayout.
Alignment.
LEADING, javax.
swing.
GroupLayout.
DEFAULT_SIZE, javax.
swing.
GroupLayout.
DEFAULT_SIZE,
Short.
MAX_VALUE) .
addComponent(btnSalir, javax.
swing.
GroupLayout.
DEFAULT_SIZE, javax.
swing.
GroupLayout.
DEFAULT_SIZE,
Short.
MAX_VALUE)) .addComponent(btnActualizar))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.
addComponent(jScrollPane1, javax.
swing.
GroupLayout.
DEFAULT_SIZE,
685,
Short.
MAX_VALUE) .addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.
addContainerGap(98,
Short.
MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(btnActualizar)
.
addPreferredGap(javax.
swing.
LayoutStyle.
ComponentPlacement.
RELATED, javax.
swing.
GroupLayout.
DEFAULT_SIZE,
Short.
MAX_VALUE) .addComponent(btnAñadir, javax.swing.GroupLayout.PREFERRED_SIZE, 61, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btnEditar, javax.swing.GroupLayout.PREFERRED_SIZE, 61, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btnEliminar, javax.swing.GroupLayout.PREFERRED_SIZE, 61, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(btnSalir, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(28, 28, 28))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 372, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())))
);
pack();
}// </editor-fold>
private void btnAñadirActionPerformed
(java.
awt.
event.
ActionEvent evt
) { new frmAñadir(this,true,false).setVisible(true);
}
private void btnSalirActionPerformed
(java.
awt.
event.
ActionEvent evt
) { dispose();
}
private void btnEditarActionPerformed
(java.
awt.
event.
ActionEvent evt
) { new frmAñadir(this,true,true).setVisible(true);
}
private void formWindowOpened
(java.
awt.
event.
WindowEvent evt
) {
}
private void formWindowActivated
(java.
awt.
event.
WindowEvent evt
) {
}
private void btnActualizarActionPerformed
(java.
awt.
event.
ActionEvent evt
) {
}
// Variables declaration - do not modify
private javax.
swing.
JButton btnActualizar
; private javax.
swing.
JButton btnAñadir
; private javax.
swing.
JButton btnEditar
; private javax.
swing.
JButton btnEliminar
; private javax.
swing.
JButton btnSalir
; public static javax.
swing.
JTable tablaInsumo
; // End of variables declaration
}
PD: El codigo en general es autogenerado por el diseñador de NetBeans, esta tambien el JDialog que contiene el formulario (Por algun motivo, el cual creo es el tamaño de el mensaje, no puedo enviarlo). Si pudieran resolver mi duda lo agradeceria mucho
Depende, yo usaba un PostConstruct que adentro tenia un metodo obtenerLista(); que se generaba cada rato y la tabla se actualzabla sola, pero no en tiempo real sino habia que realizar una accion o refrescar la pagina