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
Código
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(){ try { Class.forName ("com.mysql.jdbc.Driver").newInstance(); } } public static Conexion getInstancia() { if (instancia == null) instancia = new Conexion(); return instancia; } Statement stm; try { stm = con.createStatement(); res=stm.executeQuery("select * from insumo"); } return res; } 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(); } } pstm.setString(1, ID); pstm.execute(); } try { boolean igual=false; while(rs.next()){ 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); } } } }
JDialog que contiene la tabla
Código
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; 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()){ lista.addRow(ID); } } initComponents(); tablaInsumo.setModel(lista); } @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { formWindowActivated(evt); } formWindowOpened(evt); } }); }, } )); jScrollPane1.setViewportView(tablaInsumo); btnEliminar.setText("Eliminar Articulo"); btnEditar.setText("Editar Articulo"); btnEditarActionPerformed(evt); } }); btnAñadir.setText("Añadir Articulo"); btnAñadirActionPerformed(evt); } }); btnSalir.setText("Salir"); btnSalirActionPerformed(evt); } }); btnActualizar.setText("Actualizar"); 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) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .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> new frmAñadir(this,true,false).setVisible(true); } dispose(); } new frmAñadir(this,true,true).setVisible(true); } } } } // Variables declaration - do not modify // 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