Para terminar el tutorial, debemos unir tanto la VISTA como el MODELO y para eso esta el CONTROLADOR. o.O
El controlador. Responde a los eventos que el usuario realiza a través de la VISTA y en algunos casos directamente en el MODELO. El controlador como su nombre indica 🙂 , controla los eventos generados por el usuario pasando estos hacia el modelo esperando una respuesta de este para después devolver el resultado en la VISTA que corresponda.
El paquete correspondiente al controlador en nuestra aplicación, consta de dos clases, la clase controlador.java y el Main.java
La clase controlador es la siguiente:
package controlador; import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.Date; import java.util.Map; import java.util.HashMap; import javax.swing.DefaultComboBoxModel; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; //Logica de aplicación -> MODELO import modelo.carrito; import modelo.modelo; import modelo.producto; //interfaz de usuario -> VISTA import vista.frmConsulta; import vista.frmPrincipal; import vista.frmProducto; import vista.frmVenta; /** * @web https://www.jc-mouse.net * @author Mouse */ public class jcontrolador implements ActionListener,MouseListener{ //vista private frmPrincipal frmprincipal ; private frmProducto frmproducto = new frmProducto(); private frmVenta frmventa = new frmVenta(); private frmConsulta frmconsulta = new frmConsulta(); //modelo private modelo mimodelo = new modelo(); //variable para almacenar los productos de una venta private Map carrito_compra = new HashMap(); //acciones que se ejecuta por los controles de cada VISTA public enum Accion { __VER_PRODUCTOS, //-> Abre VISTA productos __VER_NUEVA_VENTA, //abre VISTA nueva venta __VER_NUEVA_COMPRA, //abre VISTA nueva compra __CONSULTAS, //-> Abre VISTA para realizar consultas __AGREGAR_PRODUCTO,//-> Ejecuta consulta __ACTUALIZAR_PRODUCTO,//-> Ejecuta consulta __NUEVA_VENTA,//-> genera un codigo al azar y limpia controles __lista_productos,//->se ejecuta cuando se hace clic en el jcombobox de productos de VISTA frmVenta __AGREGAR_A_LISTA,//->asigna un producto al carrito de compras __REMOVER_PRODUCTO,//-> remueve un producto del carrito de compras __REGISTRAR_VENTA,//-> registra una venta en la base de datos __PROCESAR_CONSULTA, //-> Ejecuta consulta -> busqueda de venta por ID __PROCESAR_CONSULTA2//-> Ejecuta consulta -> busqueda de venta por rango de fechas } /** Constructor de clase */ public jcontrolador( JFrame padre ) { this.frmprincipal = (frmPrincipal) padre; } //EVENTOS DEL RATON SOBRE LOS COMPONENTES public void mouseClicked(MouseEvent e) { if( e.getButton()== 1)//boton izquierdo { int fila = this.frmproducto.__TABLA_PRODUCTO.rowAtPoint(e.getPoint()); if (fila > -1){ this.frmproducto.__id.setText( String.valueOf( this.frmproducto.__TABLA_PRODUCTO.getValueAt(fila, 0) )); this.frmproducto.__nombre.setText( String.valueOf( this.frmproducto.__TABLA_PRODUCTO.getValueAt(fila, 1) )); this.frmproducto.__precio.setText( String.valueOf( this.frmproducto.__TABLA_PRODUCTO.getValueAt(fila, 2) )); this.frmproducto.__cantidad.setText( String.valueOf( this.frmproducto.__TABLA_PRODUCTO.getValueAt(fila, 3) )); this.frmproducto.__lista_categorias.setSelectedItem( String.valueOf( this.frmproducto.__TABLA_PRODUCTO.getValueAt(fila, 4) ) ); } } } public void mousePressed(MouseEvent e){/** nada por aqui */} public void mouseReleased(MouseEvent e){/** nada por aqui */} public void mouseEntered(MouseEvent e){/** nada por aqui */} public void mouseExited(MouseEvent e){/** nada por aqui */} /** Inicia todos las acciones y listener de la vista */ public void iniciar() { //frmprincipal.setVisible(true); //si no se utiliza SKIN // Skin tipo WINDOWS try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); SwingUtilities.updateComponentTreeUI(frmprincipal); SwingUtilities.updateComponentTreeUI( this.frmproducto ); SwingUtilities.updateComponentTreeUI( this.frmventa ); SwingUtilities.updateComponentTreeUI( this.frmconsulta ); this.frmprincipal.setLocationRelativeTo(null); this.frmprincipal.setTitle("Control de Inventario - https://www.jc-mouse.net/"); this.frmprincipal.setVisible(true); } catch (UnsupportedLookAndFeelException ex) {} catch (ClassNotFoundException ex) {} catch (InstantiationException ex) {} catch (IllegalAccessException ex) {} //boton this.frmprincipal.__VER_PRODUCTOS.setActionCommand( "__VER_PRODUCTOS" ); this.frmprincipal.__VER_PRODUCTOS.addActionListener(this); //boton this.frmprincipal.__VER_NUEVA_VENTA.setActionCommand( "__VER_NUEVA_VENTA" ); this.frmprincipal.__VER_NUEVA_VENTA.addActionListener(this); //boton this.frmprincipal.__VER_NUEVA_COMPRA.setActionCommand( "__VER_NUEVA_COMPRA" ); this.frmprincipal.__VER_NUEVA_COMPRA.addActionListener(this); //boton this.frmprincipal.__CONSULTAS.setActionCommand("__CONSULTAS"); this.frmprincipal.__CONSULTAS.addActionListener(this); //escucha eventos del raton sobre la tabla this.frmproducto.__TABLA_PRODUCTO.addMouseListener(this); //comando y listener para boton agregar producto this.frmproducto.__AGREGAR_PRODUCTO.setActionCommand("__AGREGAR_PRODUCTO"); this.frmproducto.__AGREGAR_PRODUCTO.addActionListener(this); //comando y listener para boton actualizar producto this.frmproducto.__ACTUALIZAR_PRODUCTO.setActionCommand("__ACTUALIZAR_PRODUCTO"); this.frmproducto.__ACTUALIZAR_PRODUCTO.addActionListener(this); //boton VISTA frmVenta this.frmventa.__NUEVA_VENTA.setActionCommand("__NUEVA_VENTA"); this.frmventa.__NUEVA_VENTA.addActionListener(this); //jcombobox frmVenta this.frmventa.__lista_productos.setActionCommand("__lista_productos"); this.frmventa.__lista_productos.addActionListener(this); //boton frmVenta this.frmventa.__AGREGAR_A_LISTA.setActionCommand("__AGREGAR_A_LISTA"); this.frmventa.__AGREGAR_A_LISTA.addActionListener(this); //boton frmVenta this.frmventa.__REMOVER_PRODUCTO.setActionCommand("__REMOVER_PRODUCTO"); this.frmventa.__REMOVER_PRODUCTO.addActionListener(this); //botn frmVenta this.frmventa.__REGISTRAR_VENTA.setActionCommand("__REGISTRAR_VENTA"); this.frmventa.__REGISTRAR_VENTA.addActionListener(this); //boton frmConsulta this.frmconsulta.__PROCESAR_CONSULTA.setActionCommand("__PROCESAR_CONSULTA"); this.frmconsulta.__PROCESAR_CONSULTA.addActionListener(this); //boton frmConsulta this.frmconsulta.__PROCESAR_CONSULTA2.setActionCommand("__PROCESAR_CONSULTA2"); this.frmconsulta.__PROCESAR_CONSULTA2.addActionListener(this); } /** Gestion de accciones */ public void actionPerformed(ActionEvent e) { switch ( Accion.valueOf( e.getActionCommand() ) ) { case __VER_PRODUCTOS: this.frmproducto.setLocationRelativeTo(null); this.frmproducto.setTitle("PRODUCTOS - https://www.jc-mouse.net/"); this.frmproducto.setVisible(true); this.frmproducto.__TABLA_PRODUCTO.setModel( this.mimodelo.getTablaProducto() ); this.frmproducto.__lista_categorias.setModel( this.mimodelo.getListaCategorias() ); break; case __VER_NUEVA_VENTA: this.frmventa.setLocationRelativeTo(null); this.frmventa.setTitle("VENTA DE PRODUCTOS - https://www.jc-mouse.net/"); this.frmventa.__id_venta.setText( this.mimodelo.getRandomCode() ); this.frmventa.__fecha_venta.setText( this.mimodelo.getFecha() ); this.frmventa.__lista_productos.setModel( this.mimodelo.getListaProductos() ); this.frmventa.__lista_clientes.setModel( this.mimodelo.getListaClientes() ); this.carrito_compra.clear(); this.frmventa.__detalle_productos.setModel(new DefaultComboBoxModel()); this.frmventa.setVisible(true); break; case __VER_NUEVA_COMPRA: JOptionPane.showMessageDialog(null,"you can do it"); break; case __CONSULTAS: this.frmconsulta.setLocationRelativeTo(null); this.frmconsulta.setTitle("Consultas - https://www.jc-mouse.net/"); this.frmconsulta.__fecha1.setDateFormatString("yyyy-MM-dd"); this.frmconsulta.__fecha2.setDateFormatString("yyyy-MM-dd"); this.frmconsulta.__fecha1.setDate( new Date() ); this.frmconsulta.__fecha2.setDate( new Date() ); this.frmconsulta.setVisible(true); break; //----------------------------------------------------------------- Soy una barra separadora pobre 🙂 case __AGREGAR_PRODUCTO: //obtiene ID de producto String cat[] = this.frmproducto.__lista_categorias.getSelectedItem().toString().split("-"); if ( this.mimodelo.NuevoProducto( this.frmproducto.__id.getText(), this.frmproducto.__nombre.getText() , this.frmproducto.__precio.getText(), this.frmproducto.__cantidad.getText() , cat[0].trim() ) ) { this.frmproducto.__TABLA_PRODUCTO.setModel( this.mimodelo.getTablaProducto() ); //actualiza JTable JOptionPane.showMessageDialog(null,"Nuevo producto agregado"); } else JOptionPane.showMessageDialog(null,"Error: Verifique los datos del nuevo producto"); break; case __ACTUALIZAR_PRODUCTO: String cat2[] = this.frmproducto.__lista_categorias.getSelectedItem().toString().split("-"); if( this.mimodelo.ActualizarProducto( this.frmproducto.__id.getText(), this.frmproducto.__nombre.getText() , this.frmproducto.__precio.getText(), this.frmproducto.__cantidad.getText() , cat2[0].trim() )) { this.frmproducto.__TABLA_PRODUCTO.setModel( this.mimodelo.getTablaProducto() ); //actualiza JTable JOptionPane.showMessageDialog(null,"Registro actualizado"); } break; //----------------------------------------------------------------- Soy una barra separadora pobre 🙂 case __NUEVA_VENTA: //asigna un nuevo codigo aleatorio al control this.frmventa.__id_venta.setText( this.mimodelo.getRandomCode() ); //muestra la fecha actual en el control this.frmventa.__fecha_venta.setText( this.mimodelo.getFecha() ); //limpia carrito MAP, jcombobox y demas controles this.carrito_compra.clear(); this.frmventa.__detalle_productos.setModel(new DefaultComboBoxModel()); this.frmventa.__cantidad.setText("0"); this.frmventa.__idp.setText(""); this.frmventa.__stock.setText("0"); this.frmventa.__precio_unidad.setText("0"); this.frmventa.__total.setText("0" ); this.frmventa.__detalle.setText(""); this.frmventa.__REGISTRAR_VENTA.setEnabled(true); break; case __lista_productos://cuando se hace clic en algun producto del form VENTA //obtiene datos de producto producto tmp = this.mimodelo.getProducto( this.frmventa.__lista_productos.getSelectedItem().toString() ); //coloca los datos en los controles this.frmventa.__idp.setText( String.valueOf( tmp.getId() ) ); this.frmventa.__stock.setText( String.valueOf( tmp.getStock()) ); this.frmventa.__precio_unidad.setText( String.valueOf( tmp.getPrecio() ) ); break; case __AGREGAR_A_LISTA: //controla que se halla seleccionado un producto y if( !this.frmventa.__idp.getText().equals("") && !this.frmventa.__cantidad.getText().equals("0")) { //controla stock de producto if( Integer.valueOf(this.frmventa.__stock.getText()) > Integer.valueOf(this.frmventa.__cantidad.getText()) ) { //nueva instancia a carrito de compras, se cargan datos en la clase carrito tmp_carrito = new carrito(); tmp_carrito.setIdproducto( this.frmventa.__idp.getText() ); tmp_carrito.setDescripcion( this.frmventa.__lista_productos.getSelectedItem().toString() ); tmp_carrito.setPrecio( this.frmventa.__precio_unidad.getText() ); tmp_carrito.setCantidad( this.frmventa.__cantidad.getText() ); //se añade clase a MAP this.carrito_compra.put( this.frmventa.__idp.getText() , tmp_carrito); //segun el MAP se actualiza la vista del jcombobox this.frmventa.__detalle_productos.setModel( this.mimodelo.ListaProductos(carrito_compra) ); //asigna el total de la venta en control this.frmventa.__total.setText( "" + this.mimodelo.getTotalVenta(carrito_compra) ); } else JOptionPane.showMessageDialog(null,"Error: No existe stock suficiente para este producto."); } else JOptionPane.showMessageDialog(null,"Error: Verifique sus datos"); break; case __REMOVER_PRODUCTO: JOptionPane.showMessageDialog(null,"you can do it"); break; case __REGISTRAR_VENTA: //comprueba que existan productos en el carrito if( !this.carrito_compra.isEmpty()) { //obtiene ID del cliente String idcliente[] = this.frmventa.__lista_clientes.getSelectedItem().toString().split("-"); if ( this.mimodelo.RegistrarVenta(this.frmventa.__id_venta.getText(), carrito_compra, this.frmventa.__total.getText(), this.frmventa.__detalle.getText(), idcliente[1].trim() )) { JOptionPane.showMessageDialog(null,"Nueva Venta registrada"); this.frmventa.__REGISTRAR_VENTA.setEnabled(false); } } else JOptionPane.showMessageDialog(null,"Error: Sin productos."); break; //----------------------------------------------------------------- Soy una barra separadora pobre 🙂 case __PROCESAR_CONSULTA: String r = this.mimodelo.getDatosVenta(this.frmconsulta.__idventa.getText()); if( !r.equals("") ) { this.frmconsulta.__resultadoTabla.setModel( this.mimodelo.getTablaVenta( this.frmconsulta.__idventa.getText() ) ); this.frmconsulta.__resultadoTexto.setText( r ); } else { this.frmconsulta.__resultadoTabla.setModel( new DefaultTableModel() ); this.frmconsulta.__resultadoTexto.setText( "" ); JOptionPane.showMessageDialog(null,"No existen registros"); } break; case __PROCESAR_CONSULTA2: this.frmconsulta.__resultadoTabla.setModel( this.mimodelo.getDatosVentaxFechas( this.frmconsulta.__fecha1.getDate(), this.frmconsulta.__fecha2.getDate() ) ); this.frmconsulta.__resultadoTexto.setText(""); break; }//-> fin case } }
Y finalmente la clase Main.java que lanza toda la aplicación.
package controlador; /** * @web https://www.jc-mouse.net/ * @author Mouse */ import vista.frmPrincipal; public class Main { public static void main(String[] args) { //se ejecuta controlador new jcontrolador( new frmPrincipal() ).iniciar(); } }
Solo nos queda ejecutar el proyecto y ver si tenemos algún error.
Todas las clases están comentadas y espero que todo lo explicado en estos 5 post pueda ser entendido sin problemas para que puedan desarrollar el proyecto, sino 🙂 espero que se diviertan averiguando como funciona la aplicación 🙂
El código del proyecto AQUI 🙂
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
JTable es un componente swing java que nos permite mostrar datos en una tabla de una base de datos, sin embargo a difere...
Instagram es una red social y aplicación para subir fotos y videos. Sus usuarios también pueden aplicar efectos fotográf...
XAMPP es un software para la gestión de base de datos, servidor web apache e interprete para lenguajes como php o perl....
Una Vista (View) es una Tabla Virtual cuyo contenido está definido por una consulta (SELECT), al igual que una tabla rea...
De las pocas herramientas disponibles entre librerías, frameworks, engines, etc para el desarrollo de videojuegos en len...
Muchas de las innovaciones computacionales de la NASA se desarrollaron para ayudar a explorar el espacio, pero ahora la...
Los comentarios estan cerrados
El gigante tecnologico Google a puesto un bonito Doodle en su buscador que esta fascinando a sus millones de usuarios qu...
WhatsApp anuncio a través de su blog que ya se encuentra disponible la función de envío de fotos y videos TEMPORALES, es...
Muchas de las innovaciones computacionales de la NASA se desarrollaron para ayudar a explorar el espacio, pero ahora la...
TikTok es una plataforma de microvideos muy popular entre los jóvenes el cual cuenta ya con millones de videos cortps de...
aprendi varias cosas q no tenia idea se podian hacer, super gracias ok!
Eres un capo JC-Mouse saludos un compatriota BOliviano sigue adelante..
IMPRESIONANTE..!!! estos 5 post en verdad capacitas a muchas personas con tu blog.. gracias
exelente
hey gracias por tus aportes…sos una maquina…ojala en Bolivia se pueda tener mas gente como tu… saludos desd Tarija…
Excelente Tutorial, eres un Maestro!
🙂 gracias
Gracias por el aporte!
hola amigo serias tan amable de subir de nuevo el proyecto completo intente bajarlo pero decia que el proyecto ha sido movido o eliminado… se que deberia ir siguiend el tutorial pero me marca errores en algunas cosas y dice que no es compatible en otras o que no se encuentra… ojala puedas resubirlo estare al pendiente amigo.. gracias y hasta pronto
el enlace esta activo 🙂
Hola jc, desarrolle paso a paso, tu tutorial, primero debo felicitarte por que realmente esta bien estructura, paso a paso, respecto de como usar el modelo mvc en Java, creo que es un trabajo digno de un buen elogio, no te mueras nunca…
suoper chulo banisimo desde COLOMBIA TE AGRAQDECEMIOS
Tratare de mejorarlo… Unos gráficos con FreeChart y reportes con IReport
Muchisimas Gracias! Aprendí Mucho!!!
Hola Mouse, me encanta el proyecto e aprendido muchísimas cosas mirando el código, te quería hacer una pregunta, me e descargado tu código, pero a la hora de ejecutarlo el netbeens se me queda pensando sabes a que puede ser debido?, muchas gracias de antemano,
o.O ni idea
Excelente tu aporte compadre!
Hola, me he descargado el código y me surgen dos problemas:
1- Cuando le doy a nueva venta no me ocurre nada y
2- No se como conectar la base de datos con el netbeans
Espero que me ayudeis porque lo necesito
ok :/
1. ¿colocaste los actioncomand a los controles? recuerda que espacios y mayusculas/minusculas son diferentes en java
2. para la conexión a la base de datos, en este caso mysql, necesitas el JDBC que lo puedes bajar gratis de la pagina de oracle, necesitas in servidor y la base de datos creada , en la clase que corresponde «database.java» debes especificar tanto el nombre de usuario y password del servidor mysql, así también el nombre de la base de datos.
Me sorprende ver tu trabajos tan bien estructurados. Soy de Chile y estudio ingeniería en informática y en este momento estoy tratando de entender el código de este proyecto.
Ganarías plata haciendo cursos online viejo y varios lo agradeceríamos. 🙂
Una consulta que función tienen los implements ??
linea : public class jcontrolador implements ActionListener,MouseListener{
Muchas gracias 🙂
«implements es para implementar clases abstractas, las clases abstractas tienen declaracion de funciones sin ser implementados por esa razón cuando usas implements tienes que sobrescribir todas las funciones de la clase abstracta» (fuente yahoo)
pd: no soy bueno explicando
Amigo mouse necesito ayuda por favor para consultar a la base de datos access:
pues consultando por numero me trae los datos pero cuando cambio la base de datos a texto para consultar por ejemplo Pt1020 me dice que pocos parametros se esperaba 1 este error me sale cuando consulto String porfavor ayudeme…
te agradezco por su colaboracion: vvvvianey@gmail.com
if (evt.getKeyCode() == evt.VK_ENTER == true) {
try {
Connection conectar = ConexionPrueba.obtenerConexion();
String sentencia = «select ControlPC.COD,ControlPC.SERIAL,ControlPC.FECHA,ControlPC.TIPO,ControlPC.MARCA,ControlPC.MODELO,ControlPC.MAC,ControlPC.USUARIO,ControlPC.AREA,USUARIOS.NOMBRE,ControlPC.ESPECIFICACIONES, TIPO.NOMBRE AS NOMT, TIPO.COD from ControlPC,USUARIOS,TIPO,MANTENIMIENTO where (ControlPC.TIPO=TIPO.COD) and (ControlPC.USUARIO=USUARIOS.COD) and (ControlPC.COD=» + cajaConsulte.getText() + «)»;
Statement estado = conectar.createStatement();
ResultSet resultado = estado.executeQuery(sentencia);
if (resultado.next()) {
labelSerial.setText(resultado.getString(«SERIAL»));
labelFecha.setText(resultado.getString(«FECHA»));
labelTipo.setText(resultado.getString(«NOMT»));
labelMarca.setText(resultado.getString(«MARCA»));
labelModelo.setText(resultado.getString(«MODELO»));
labelMac.setText(resultado.getString(«MAC»));
labelUsuario.setText(resultado.getString(«NOMBRE»));
labelArea.setText(resultado.getString(«AREA»));
cajaAreaEspecificacion.setText(resultado.getString(«ESPECIFICACIONES»));
//cajaAreaEspecificacion.setLineWrap(true);
labelNoExiste.setText(«»);
cajaConsulte.selectAll();
btnVerMantenimiento.setVisible(true);
} else {
labelNoExiste.setText(«NO EXISTE UN ARTICULO CON DICHO CODIGO…»);
labelSerial.setText(«»);
labelFecha.setText(«»);
labelTipo.setText(«»);
labelMarca.setText(«»);
labelModelo.setText(«»);
labelMac.setText(«»);
labelUsuario.setText(«»);
labelArea.setText(«»);
cajaAreaEspecificacion.setText(«»);
cajaConsulte.selectAll();
btnVerMantenimiento.setVisible(false);
}
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, «¡Error al leer Datos! : » + ex.getMessage());
ex.printStackTrace();
}
}
es error de SQL, verifica tu consulta, creo que le faltan unas comillas en la condicion de busqueda
ControlPC.COD=” + cajaConsulte.getText() + “)”;
Buenas como vamos exelente sus aportes
tengo una pregunta o me genera un error en AGREGAR_PRODUCTO me genera el error a la hora de enviarlo a la JTabla (this.frmproducto._TABLA_PRODUCTO.setModel)
es decir no me toma el setModel
Gracias de antemano
¿cual es el error? no pegues todo, con las 3 o 4 primeras lineas es mas que suficientes 🙂
Buenas como vamos estoy crendo desde ceros el proyecto y
pues el error como le desia es que cuando estoy creando nuevo producto para pasar a
al modelo o a la tabla (JTabla (this.frmproducto._TABLA_PRODUCTO.setModel))
cierto entonces, cunado le doy la opcion de TABLA_PRODUCTO.(punto) no sale la opcion de enviarle al modelo de (setModel).
no se si me hice entender
gracias
Una consulta, como pruebo el demo?
dentro el RAR están todas las instrucciones 🙂
Buenas como vamos
excelentes tus proyectos me han facilitado el aprendizaje
tengo un problema estoy creando Agregar producto
case __AGREGAR_PRODUCTO:
//obtiene ID de producto
String cat[] = this.frmproducto.__lista_categorias.getSelectedItem().toString().split(«-«);
if ( this.mimodelo.NuevoProducto(
this.frmproducto.__id.getText(),
this.frmproducto.__nombre.getText() ,
this.frmproducto.__precio.getText(),
this.frmproducto.__cantidad.getText() ,
cat[0].trim()
) )
{
this.frmproducto.__TABLA_PRODUCTO.setModel( this.mimodelo.getTablaProducto() ); //actualiza JTable
JOptionPane.showMessageDialog(null,»Nuevo producto agregado»);
}
else
JOptionPane.showMessageDialog(null,»Error: Verifique los datos del nuevo producto»);
break;
pero me genera error o no me toma El Model cuando envio los datos a la Tabla Productos this.frmproducto.__TABLA_PRODUCTO.setModel( this.mimodelo.getTablaProducto() ); //actualiza JTable
cuando _TABLA_PRODUCTO.setModel no me la toma
gracias de antemano
¿cual el error que te sale?, estas comprobando que en verdad estas enviando valores correctos y no algún NULL, para verificar porque no usas SYSTEM.OUT.PRINTLN() para ver que datos le estas pasando a MIMODELO.NUEVOPRODUCTO()
como vamos
no en realidad estoy enviando los datos al modelo puesto que los datos si me los toma, pero el problema es que no me toma el setModel cuando le don la opcion TABLA_PRODUCTOS.(punto ) y tomar la opcion setModel
gracias
:/ no entiendo, si TABLA_PRODUCTOS esta declarado como public, son accesibles todos su métodos públicos, pero OJO, si te refieres a que en el IDE no aparece, es porque cuando cambias la propiedad de Private a Public pasan unos segundos en el que el IDE escanea el objeto y te muestra sus métodos y propiedades, tal ves te esta falta un SAVE project para actualizar el proyecto java 🙂
bien si fue eso muchas gracias men te lo agradezco solo por esas comillas jejeje
Una consulta..en la clase controlador..en el case__consulta
…no me reconoce el metodo setDateFormatString..xq sera..xfa!!
setDateFormatString es método de jcalendar para acceder a el debes utilizar ese componente, debes cambiar el swing a PUBLIC para poder llamarlo desde el controlador
y si quisiera que esa lista de compra, se pudiera imprimir, es decir hacer un ticket de compra, como podría ser?
pues utilizas reportes, es mas sencillo desde ahi
No es broma, voy probando tu proyecto, pero al ejecutarlo, se conecta a la base de datos con el mensaje
run:
OK base de datos bdtest listo
y ahi se queda, cambie de driver de jdbc a una version inferior 5.1.6 pero nada.
La prueba lo realice en Netbeans 8 y eclipse, en ambos es el mismo problema
Que es lo que hace esta parte:
public jcontrolador( JFrame padre )
{
this.frmprincipal = (frmPrincipal) padre;
}
Por favor si no es mucha molestia para aquellos ignorantes que inician en Java
Para quienes llegaron aqui y no obtuvieron respuestas, lo que hice fue, en el método public void iniciar() del jcontrolador.java le agregué al final este código:
frmprincipal.setVisible(true);
lo que hace es visualizar el form principal.
Saludos
Hola, soy nuevo en esta web, estaba leyendo el desarrollo del proyecto esta genial. Es una excelente pagina. mi consulta es si la base de datos utilizada para el proyecto aguantará para almacenar 2000 articulos?
una base de datos aguanta miles de registros sin problemas
Hola, muchas gracias por el aporto, solo una observación, cuando trato de modificar el id del producto ya en existencia no se actualiza, es decir, me manda el JOptionPane diciendo que si se realizaron los cambios, pero el id no cambia, es decir, puede cambiar toda la información del producto, pero el id no. Alguna idea? Ya verifiqué y no me falta nada de lo que pusiste. Que sugieren?
bueno el SQL esta hecho para modificar los valores de un producto dado su ID, el ID es quien desencadena la acción, para cambie el ID mismo, tendrías que crearte una nueva función o modificar la existente
Muchas gracias aprendi mucho con los codigos de control en varios lenguajes.
Saludos.