TableColumn columnaProducto = jTableVenta_Detalle.getColumnModel().getColumn(1); columnaProducto.setPreferredWidth(150); jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 2
private void initComponents() { jScrollPaneTabla = new javax.swing.JScrollPane(); jTableVenta_Detalle = new javax.swing.JTable(); jButtonAgregar = new javax.swing.JButton(); jButtonEliminar = new javax.swing.JButton(); jButtonSalir = new javax.swing.JButton();
getContentPane().add(jScrollPaneTabla, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 80, 330, 180));
jButtonAgregar.setText("Agregar"); jButtonAgregar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonAgregarActionPerformed(evt); } }); getContentPane().add(jButtonAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 320, 100, -1));
jButtonEliminar.setText("Eliminar"); jButtonEliminar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonEliminarActionPerformed(evt); } }); getContentPane().add(jButtonEliminar, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 320, 100, -1));
jButtonSalir.setText("Salir"); jButtonSalir.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonSalirActionPerformed(evt); } }); getContentPane().add(jButtonSalir, new org.netbeans.lib.awtextra.AbsoluteConstraints(290, 320, 90, -1)); pack(); }
private void jButtonAgregarActionPerformed(java.awt.event.ActionEvent evt) { Vector oVector=new Vector(); oModeloDeTabla.addRow(oVector); } jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 3
package PaqueteModeloDeTablaConVenta_Detalle; public class ClasePrincipal { public static void main(String[] args) { JFrameVenta_Detalle frame=new JFrameVenta_Detalle(); frame.setVisible(true); } }
jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 4
JTABLE CON BASE DE DATOS (Versin Intermedia)
jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 5 package PaqueteModeloDeTabla; import javax.swing.table.DefaultTableModel; public class ClaseModeloDeTabla extends DefaultTableModel { public boolean isCellEditable(int row,int column) { if(column==3) { return false; } else { return true; } } }
package PaqueteModeloDeTabla; public class ClaseProducto { private int producto_id; private String nombre; private double precio; private double costo; public ClaseProducto(int producto_id,String nombre,double costo,double precio) { this.producto_id=producto_id; this.nombre=nombre; this.costo=costo; this.precio=precio; }
public ClaseProducto() { } public int getProducto_id() { return producto_id; }
public void setProducto_id(int producto_id) { this.producto_id = producto_id; }
public String getNombre() { return nombre; }
public void setNombre(String nombre) { this.nombre = nombre; }
jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 6 public double getPrecio() { return precio; }
public void setPrecio(double precio) { this.precio = precio; }
public String toString() { return this.nombre; }
public double getCosto() { return costo; }
public void setCosto(double costo) { this.costo = costo; } }
package PaqueteModeloDeTabla; public class ClaseVenta_Detalle { private int venta_id; private int producto_id; private int cantidad; private double costo; private double precio;
public int getVenta_id() { return venta_id; }
public void setVenta_id(int venta_id) { this.venta_id = venta_id; }
public int getProducto_id() { return producto_id; }
public void setProducto_id(int producto_id) { this.producto_id = producto_id; }
public int getCantidad() { return cantidad; }
jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 7 public void setCantidad(int cantidad) { this.cantidad = cantidad; }
public double getCosto() { return costo; }
public void setCosto(double costo) { this.costo = costo; }
public double getPrecio() { return precio; }
public void setPrecio(double precio) { this.precio = precio; } }
package PaqueteModeloDeTabla; public class ClaseCalculoDeSubtotal { private int cantidad; private double precio; private double subTotalParcial; public double getSubTotal_Parcial() { return subTotalParcial; }
public void setSubTotal_Parcial() { this.subTotalParcial = cantidad*precio; }
public int getCantidad() { return cantidad; }
public void setCantidad(int cantidad) { this.cantidad = cantidad; } public double getPrecio() { return precio; }
public void setPrecio(double precio) { this.precio = precio; } } jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 8
package PaqueteModeloDeTabla; import java.util.Vector; import javax.swing.DefaultCellEditor; import javax.swing.JOptionPane; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.TableColumn; public class JFrameVenta_Detalle extends javax.swing.JFrame { // Se crea el objeto oModeloDeTabla del tipo ClaseModeloDeTabla // ClaseModeloDeTabla es derivada de DefaultTableModel) ClaseModeloDeTabla oModeloDeTabla=new ClaseModeloDeTabla();
public JFrameVenta_Detalle() { initComponents();
// Agregar columNas al modelo de tabla oModeloDeTabla.addColumn("Cantidad"); oModeloDeTabla.addColumn("Producto"); oModeloDeTabla.addColumn("Precio"); oModeloDeTabla.addColumn("SubTotal");
//Se establece el modelo de datos de la tabla jTableVenta_Detalle jTableVenta_Detalle.setModel(oModeloDeTabla);
// Se carga el objeto ComboBoxProducto con los respectivos Items CargarComboProducto();
// Llamada del mtodo que incrusta el ComboBoxProducto a la tabla jTableVenta_Detalle IncrustarComboBoxEnJTable(); /* addTableModelListener(TableModelListener tme): Agrega a un listener a la lista que se notifica cada vez que ocurre un cambio en el modelo de tabla. El evento ocurre cuando se modifica el contenido de la tabla. */ jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 9
oModeloDeTabla.addTableModelListener( new TableModelListener() { // Invocado cuando el TableModel de la tabla genera un TableModelEvent public void tableChanged(TableModelEvent tme) { EventoTableModel(tme); } }); }
// Mtodo que carga de datos al comboBox jComboBoxProducto public void CargarComboProducto() { jComboBoxProducto.addItem(new ClaseProducto(1,"Cerveza Cristal 650 Ml",28,30)); jComboBoxProducto.addItem(new ClaseProducto(2,"Cerveza Pilsen 650 Ml",27,29)); j ComboBoxProducto.addItem(new ClaseProducto(3,"Cerveza Dorada 650 Ml",24,26)); }
public void IncrustarComboBoxEnJTable() { /* getColumnModel().getColumn(i): Devuelve el TableColumnModel (columna de modelo de tabla) que contiene toda la informacin de la columna de la tabla. (i) corresponde a la columna i de la tabla. El valor i de la primera columna es 0 */
private void initComponents() { jComboBoxProducto = new javax.swing.JComboBox(); jButtonAgregar = new javax.swing.JButton(); jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 10 jButtonEliminar = new javax.swing.JButton(); jButtonSalir = new javax.swing.JButton(); jLabelNroDeItems = new javax.swing.JLabel(); jTextFieldNrodeItems = new javax.swing.JTextField(); jScrollPaneTabla = new javax.swing.JScrollPane(); jTableVenta_Detalle = new javax.swing.JTable(); jButtonImprimir = new javax.swing.JButton();
jButtonAgregar.setText("Agregar"); jButtonAgregar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonAgregarActionPerformed(evt); } }); getContentPane().add(jButtonAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 310, 90, -1));
jButtonEliminar.setText("Eliminar"); jButtonEliminar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonEliminarActionPerformed(evt); } }); getContentPane().add(jButtonEliminar, new org.netbeans.lib.awtextra.AbsoluteConstraints(321, 310, 90, -1));
jButtonSalir.setText("Salir"); jButtonSalir.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonSalirActionPerformed(evt); } }); getContentPane().add(jButtonSalir, new org.netbeans.lib.awtextra.AbsoluteConstraints(450, 310, 90, -1));
jLabelNroDeItems.setText("NroDeItems:"); getContentPane().add(jLabelNroDeItems, new org.netbeans.lib.awtextra.AbsoluteConstraints(400, 350, 70, -1)); getContentPane().add(jTextFieldNrodeItems, new org.netbeans.lib.awtextra.AbsoluteConstraints(520, 350, 50, -1)); jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 11
package PaqueteModeloDeTabla; public class ClasePrincipal { public static void main(String[] args) { JFrameVenta_Detalle frame=new JFrameVenta_Detalle(); frame.setVisible(true); } } jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 13
JTABLE CON BASE DE DATOS (Versin PreFinal)
jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 14
package PaqueteModeloDeTabla; import javax.swing.table.DefaultTableModel; public class ClaseModeloDeTabla extends DefaultTableModel { //Este metodo es para configurar las columnas editables public boolean isCellEditable(int row,int column) { if(column==3) { return false; } else { return true; } } }
jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 15 package PaqueteModeloDeTabla; public class ClaseProducto { private int producto_id; private String nombre; private double precio; private double costo; public ClaseProducto(int producto_id,String nombre,double costo,double precio) { this.producto_id=producto_id; this.nombre=nombre; this.costo=costo; this.precio=precio; }
public ClaseProducto() { }
public int getProducto_id() { return producto_id; }
public void setProducto_id(int producto_id) { this.producto_id = producto_id; }
public String getNombre() { return nombre; }
public void setNombre(String nombre) { this.nombre = nombre; }
public double getPrecio() { return precio; }
public void setPrecio(double precio) { this.precio = precio; }
public String toString() { return this.nombre; }
public double getCosto() { return costo; }
public void setCosto(double costo) { this.costo = costo; } } jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 16 package PaqueteModeloDeTabla; public class ClaseVenta_Detalle { private int venta_id; private int producto_id; private int cantidad; private double costo; private double precio;
public int getVenta_id() { return venta_id; }
public void setVenta_id(int venta_id) { this.venta_id = venta_id; }
public int getProducto_id() { return producto_id; }
public void setProducto_id(int producto_id) { this.producto_id = producto_id; }
public int getCantidad() { return cantidad; }
public void setCantidad(int cantidad) { this.cantidad = cantidad; }
public double getCosto() { return costo; }
public void setCosto(double costo) { this.costo = costo; }
public double getPrecio() { return precio; }
public void setPrecio(double precio) { this.precio = precio; } }
jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 17 package PaqueteModeloDeTabla; public class ClaseCalculoDeSubtotal { private int cantidad; private double precio; private double subTotalParcial; public double getSubTotal_Parcial() { return subTotalParcial; }
public void setSubTotal_Parcial() { this.subTotalParcial = cantidad*precio; }
public int getCantidad() { return cantidad; }
public void setCantidad(int cantidad) { this.cantidad = cantidad; }
public double getPrecio() { return precio; }
public void setPrecio(double precio) { this.precio = precio; } }
package PaqueteModeloDeTabla; public class ClaseCalculoDeTotal { private double subTotal; private double igv; private double total;
public ClaseCalculoDeTotal() { this.subTotal=0; this.igv=0; this.total=0; } public double getSubTotal() { return subTotal; }
public void setSubTotal(double subTotal_temporal) { this.subTotal = this.subTotal+subTotal_temporal; }
jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 18 public double getIgv() { return igv; }
public void setIgv() { this.igv = subTotal*0.19; }
public double getTotal() { return total; }
public void setTotal() { this.total = igv+subTotal ; } }
package PaqueteModeloDeTabla; import java.util.Vector; import javax.swing.DefaultCellEditor; import javax.swing.JOptionPane; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.TableColumn; public class JFrameVenta_Detalle extends javax.swing.JFrame { // Se crea el objeto oModeloDeTabla del tipo ClaseModeloDeTabla // ClaseModeloDeTabla es derivada de DefaultTableModel) ClaseModeloDeTabla oModeloDeTabla=new ClaseModeloDeTabla();
// constructor public JFrameVenta_Detalle() { initComponents();
// Agregar columas al modelo de tabla oModeloDeTabla.addColumn("Cantidad"); oModeloDeTabla.addColumn("Producto"); oModeloDeTabla.addColumn("Precio"); oModeloDeTabla.addColumn("SubTotal");
//Se establece el modelo de datos de la tabla jTableVenta_Detalle jTableVenta_Detalle.setModel(oModeloDeTabla);
jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 19 TableColumn columnaCantidad = jTableVenta_Detalle.getColumnModel().getColumn(0); columnaCantidad.setPreferredWidth(65);
// Se carga el objeto ComboBoxProducto con los respectivos Items CargarComboProducto();
// Llamada del mtodo que incrusta el ComboBoxProducto a la tabla jTableVenta_Detalle IncrustarComboBoxEnJTable();
/* addTableModelListener(TableModelListener tme): Agrega a un listener a la lista que se notifica cada vez que ocurre un cambio en el modelo de datos. El evento ocuure cuando se modifica el contenido de la tabla */ oModeloDeTabla.addTableModelListener( new TableModelListener() { // Invocado cuando el TableModel de la tabla genera un TableModelEvent public void tableChanged(TableModelEvent tme) { EventoTableModel(tme); } }); }
// Mtodo que carga de datos al comboBox jComboBoxProducto public void CargarComboProducto() { jComboBoxProducto.addItem(new ClaseProducto(1,"Cerveza Cristal 650 Ml",28,30)); jComboBoxProducto.addItem(new ClaseProducto(2,"Cerveza Pilsen 650 Ml",27,29)); jComboBoxProducto.addItem(new ClaseProducto(3,"Cerveza Dorada 650 Ml",24,26)); }
public void IncrustarComboBoxEnJTable() { /* getColumnModel().getColumn(i): Devuelve el TableColumnModel (columna de modelo de tabla) que contiene toda la informacin de la columna de la tabla. (i) corresponde a la columna i de la tabla. El valor i de la primera columna es 0 */
// Configuracin de un ComboBox como editor de celda columnaProducto.setCellEditor(new DefaultCellEditor(jComboBoxProducto)); }
jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 20 private void EventoTableModel(javax.swing.event.TableModelEvent evt) { if (evt.getColumn()==0||evt.getColumn()==2) { if (jTableVenta_Detalle.getValueAt(jTableVenta_Detalle.getSelectedRow(),1)!=null) { if(jTableVenta_Detalle.getValueAt(jTableVenta_Detalle.getSelectedRow(),0).equals("")) { jTableVenta_Detalle.setValueAt(0,jTableVenta_Detalle.getSelectedRow(), 0); } if(jTableVenta_Detalle.getValueAt(jTableVenta_Detalle.getSelectedRow(),2).equals("")) { jTableVenta_Detalle.setValueAt(0,jTableVenta_Detalle.getSelectedRow(), 2); } CalculoSubTotal_Parcial(jTableVenta_Detalle.getSelectedRow(), jTableVenta_Detalle.getValueAt(jTableVenta_Detalle.getSelectedRow(), 0).toString(), jTableVenta_Detalle.getValueAt( jTableVenta_Detalle.getSelectedRow(), 2).toString()); CalculoDeMonto(); } } }
private void initComponents() { jComboBoxProducto = new javax.swing.JComboBox(); jButtonAgregar = new javax.swing.JButton(); jButtonEliminar = new javax.swing.JButton(); jButtonSalir = new javax.swing.JButton(); jLabelNroDeItems = new javax.swing.JLabel(); jTextFieldNrodeItems = new javax.swing.JTextField(); jScrollPaneTabla = new javax.swing.JScrollPane(); jTableVenta_Detalle = new javax.swing.JTable(); jButtonImprimir = new javax.swing.JButton(); jTextFieldTotal = new javax.swing.JTextField(); jTextFieldIGV = new javax.swing.JTextField(); jTextFieldSubTotal = new javax.swing.JTextField(); jLabelSubTotal = new javax.swing.JLabel(); jLabelIGV = new javax.swing.JLabel(); jLabelTotal = new javax.swing.JLabel();
jButtonAgregar.setText("Agregar"); jButtonAgregar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonAgregarActionPerformed(evt); } }); jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 21 getContentPane().add(jButtonAgregar, new org.netbeans.lib.awtextra.AbsoluteConstraints(40, 310, 90, -1));
jButtonEliminar.setText("Eliminar"); jButtonEliminar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonEliminarActionPerformed(evt); } }); getContentPane().add(jButtonEliminar, new org.netbeans.lib.awtextra.AbsoluteConstraints(321, 310, 90, -1));
jButtonSalir.setText("Salir"); jButtonSalir.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButtonSalirActionPerformed(evt); } }); getContentPane().add(jButtonSalir, new org.netbeans.lib.awtextra.AbsoluteConstraints(450, 310, 90, -1));
jLabelNroDeItems.setText("NroDeItems:"); getContentPane().add(jLabelNroDeItems, new org.netbeans.lib.awtextra.AbsoluteConstraints(430, 450, 70, -1)); getContentPane().add(jTextFieldNrodeItems, new org.netbeans.lib.awtextra.AbsoluteConstraints(520, 450, 50, -1));
getContentPane().add(jButtonImprimir, new org.netbeans.lib.awtextra.AbsoluteConstraints(183, 310, 90, -1));
jTextFieldTotal.setEditable(false); getContentPane().add(jTextFieldTotal, new org.netbeans.lib.awtextra.AbsoluteConstraints(450, 410, 80, -1));
jTextFieldIGV.setEditable(false); jTextFieldIGV.setHorizontalAlignment(javax.swing.JTextField.RIGHT); getContentPane().add(jTextFieldIGV, new org.netbeans.lib.awtextra.AbsoluteConstraints(450, 380, 80, -1));
jTextFieldSubTotal.setEditable(false); jTextFieldSubTotal.setHorizontalAlignment(javax.swing.JTextField.RIGHT); getContentPane().add(jTextFieldSubTotal, new org.netbeans.lib.awtextra.AbsoluteConstraints(450, 350, 80, -1));
jLabelSubTotal.setText("SubTotal :"); getContentPane().add(jLabelSubTotal, new org.netbeans.lib.awtextra.AbsoluteConstraints(370, 360, 60, -1)); jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 22
jLabelIGV.setText("IGV:"); getContentPane().add(jLabelIGV, new org.netbeans.lib.awtextra.AbsoluteConstraints(400, 380, 40, -1));
jLabelTotal.setText("Total:"); getContentPane().add(jLabelTotal, new org.netbeans.lib.awtextra.AbsoluteConstraints(390, 410, 50, -1)); pack(); }
// Se dispara cuando se seleciona un items private void jComboBoxProductoItemStateChanged(java.awt.event.ItemEvent evt) { if (evt.getStateChange() == java.awt.event.ItemEvent.SELECTED&&jTableVenta_Detalle.getSelectedRow()!=-1) { ClaseProducto itemComboBox=(ClaseProducto) jComboBoxProducto.getSelectedItem(); jTableVenta_Detalle.setValueAt(itemComboBox.getPrecio(),jTableVenta_Detalle.getSelectedRow(),2);
CalculoSubTotal_Parcial(jTableVenta_Detalle.getSelectedRow(), jTableVenta_Detalle.getValueAt(jTableVenta_Detalle.getSelectedRow(), 0).toString(), Double.toString(itemComboBox.getPrecio())); CalculoDeMonto(); } } jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 23 private void CalculoSubTotal_Parcial(int i,String cantidad, String precio) { ClaseCalculoDeSubtotal oCalculo = new ClaseCalculoDeSubtotal(); oCalculo.setCantidad(Integer.parseInt(cantidad)); oCalculo.setPrecio(Double.parseDouble(precio)); oCalculo.setSubTotal_Parcial();
package PaqueteModeloDeTabla; public class ClasePrincipal { public static void main(String[] args) { JFrameVenta_Detalle frame=new JFrameVenta_Detalle(); frame.setVisible(true); } } jTable con base de datos U.N.J.F.S.C. F.I. Ing. Carlos Palacios Garcia Pgina 24