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
JDialog que contiene la tabla
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
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 (java) [Seleccionar]
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 {
static Connection con=null;
public static Conexion instancia;
private Conexion(){
String URL="jdbc:mysql://localhost/proyecto2bc";
try {
Class.forName ("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection(URL,"Nico","");
System.out.println("Conexion exitosa");
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
public static Conexion getInstancia()
{
Connection con=null;
if (instancia == null)
instancia = new Conexion();
return instancia;
}
public ResultSet mostrarInsumo (){
ResultSet res=null;
Statement stm;
try {
stm = con.createStatement();
res=stm.executeQuery("select * from insumo");
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
return res;
}
public void AgregarInsumo(String ID, String Tipo, String marca, String version, String modelo, String potencia, double tamaño, String descripcion, int cantidad, int precio) throws SQLException{
String query="insert into insumo values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
try (PreparedStatement pstm = con.prepareStatement(query)) {
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();
} catch (SQLException ex) {
System.out.println(ex.getMessage());;
}
}
public void EliminarFila(String ID) throws SQLException{
String query="delete from libro where ID = ?";
PreparedStatement pstm=con.prepareStatement(query);
pstm.setString(1, ID);
pstm.execute();
}
public void ActualizarLista(DefaultTableModel modeloT){
try {
boolean igual=false;
Statement stm=con.createStatement();
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++){
String tabla=(String)modeloT.getValueAt(i, j);
if(Fila[j].equals(tabla)){
contador++;
}
if(contador==50){
igual=true;
}
}
}
if(!igual) modeloT.addRow(Fila);
}
} catch (SQLException ex) {
System.out.println(ex.getMessage());
}
}
}
JDialog que contiene la tabla
Código (java) [Seleccionar]
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 Connection conn= null;
static Conexion con = Conexion.getInstancia();
static DefaultTableModel lista;
public frmArticulo(java.awt.Frame parent, boolean modal) throws SQLException {
super(parent, modal);
ResultSet rs = con.mostrarInsumo();
String [] titulosinsumos= {"ID","Tipo","Marca","Version","Modelo","Potencia","Tamaño","Descripcion","Cantidad","Precio" };
DefaultTableModel lista = new DefaultTableModel(null,titulosinsumos ){
@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);
}
} catch (Exception e) {
System.out.println("Puto");
}
initComponents();
tablaInsumo.setModel(lista);
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
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();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowActivated(java.awt.event.WindowEvent evt) {
formWindowActivated(evt);
}
public void windowOpened(java.awt.event.WindowEvent evt) {
formWindowOpened(evt);
}
});
tablaInsumo.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
}
));
jScrollPane1.setViewportView(tablaInsumo);
btnEliminar.setText("Eliminar Articulo");
btnEditar.setText("Editar Articulo");
btnEditar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnEditarActionPerformed(evt);
}
});
btnAñadir.setText("Añadir Articulo");
btnAñadir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnAñadirActionPerformed(evt);
}
});
btnSalir.setText("Salir");
btnSalir.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnSalirActionPerformed(evt);
}
});
btnActualizar.setText("Actualizar");
btnActualizar.addActionListener(new java.awt.event.ActionListener() {
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;
private javax.swing.JScrollPane jScrollPane1;
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