+ All Categories
Home > Documents > Jtable Con Base de Datos

Jtable Con Base de Datos

Date post: 15-Oct-2015
Category:
Upload: carlos-palacios-garcia
View: 22 times
Download: 0 times
Share this document with a friend
Popular Tags:

of 24

Transcript
  • 5/25/2018 Jtable Con Base de Datos

    1/24

    jTable con base de datos U.N.J.F.S.C.F.I.

    Ing. Carlos Palacios Garcia Pgina 1

    JTABLE CON BASE DE DATOS (Versin Inicial)

    package PaqueteModeloDeTablaConVenta_Detalle;

    import javax.swing.table.DefaultTableModel;

    public class ClaseModeloDeTabla extends DefaultTableModel

    {

    }

    package PaqueteModeloDeTablaConVenta_Detalle;

    import java.util.Vector;

    import javax.swing.table.TableColumn;

    public class JFrameVenta_Detalle extends javax.swing.JFrame

    { ClaseModeloDeTabla oModeloDeTabla=new ClaseModeloDeTabla();

    public JFrameVenta_Detalle()

    { initComponents();oModeloDeTabla.addColumn("Cantidad");

    oModeloDeTabla.addColumn("Producto");

    oModeloDeTabla.addColumn("Precio");

    oModeloDeTabla.addColumn("SubTotal");

    jTableVenta_Detalle.setModel(oModeloDeTabla);

    jTableVenta_Detalle.getTableHeader().setReorderingAllowed(false) ;

    TableColumn columnaCantidad = jTableVenta_Detalle.getColumnModel().getColumn(0);

    columnaCantidad.setPreferredWidth(65);

    TableColumn columnaProducto = jTableVenta_Detalle.getColumnModel().getColumn(1);

    columnaProducto.setPreferredWidth(150);

  • 5/25/2018 Jtable Con Base de Datos

    2/24

    jTable con base de datos U.N.J.F.S.C.F.I.

    Ing. Carlos Palacios Garcia Pgina 2

    TableColumn columnaPrecio = jTableVenta_Detalle.getColumnModel().getColumn(2 );

    columnaPrecio.setPreferredWidth(60);

    TableColumn columnaSubTotal = jTableVenta_Detalle.getColumnModel().getColumn(3) ;

    columnaSubTotal.setPreferredWidth(60);

    }

    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();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

    jScrollPaneTabla.setViewportView(jTableVenta_Detalle);

    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);

    }

  • 5/25/2018 Jtable Con Base de Datos

    3/24

    jTable con base de datos U.N.J.F.S.C.F.I.

    Ing. Carlos Palacios Garcia Pgina 3

    private void jButtonEliminarActionPerformed(java.awt.event.ActionEvent evt)

    { oModeloDeTabla.removeRow(jTableVenta_Detalle.getSelectedRow());

    }

    private void jButtonSalirActionPerformed(java.awt.event.ActionEvent evt)

    { dispose();

    }

    private javax.swing.JButton jButtonAgregar;

    private javax.swing.JButton jButtonEliminar;

    private javax.swing.JButton jButtonSalir;

    private javax.swing.JScrollPane jScrollPaneTabla;

    private javax.swing.JTable jTableVenta_Detalle;

    }

    package PaqueteModeloDeTablaConVenta_Detalle;

    public class ClasePrincipal

    { public static void main(String[] args)

    { JFrameVenta_Detalle frame=new JFrameVenta_Detalle();

    frame.setVisible(true);

    }

    }

  • 5/25/2018 Jtable Con Base de Datos

    4/24

    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)

  • 5/25/2018 Jtable Con Base de Datos

    5/24

    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;

    }

  • 5/25/2018 Jtable Con Base de Datos

    6/24

    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;

    }

  • 5/25/2018 Jtable Con Base de Datos

    7/24

    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;}

    }

  • 5/25/2018 Jtable Con Base de Datos

    8/24

    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);

    jTableVenta_Detalle.getTableHeader()

    .setReorderingAllowed

    (false);

    TableColumn columnaCantidad = jTableVenta_Detalle.getColumnModel().getColumn(0) ;

    columnaCantidad.setPreferredWidth(65);

    TableColumn columnaProducto = jTableVenta_Detalle.getColumnModel().getColumn(1) ;

    columnaProducto.setPreferredWidth(150);

    TableColumn columnaPrecio = jTableVenta_Detalle.getColumnModel().getColumn(2) ;

    columnaPrecio.setPreferredWidth(40);

    TableColumn columnaSubTotal = jTableVenta_Detalle.getColumnModel().getColumn(3);

    columnaSubTotal.setPreferredWidth(40);

    // 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.

    */

  • 5/25/2018 Jtable Con Base de Datos

    9/24

    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

    */

    TableColumn columnaProducto = jTableVenta_Detalle.getColumnModel().getColumn(1);

    // Configuracin de un ComboBox como editor de celda

    columnaProducto.setCellEditor(new DefaultCellEditor(jComboBoxProducto));

    }

    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());

    }

    }

    }

    private void initComponents()

    { jComboBoxProducto = new javax.swing.JComboBox();

    jButtonAgregar = new javax.swing.JButton();

  • 5/25/2018 Jtable Con Base de Datos

    10/24

    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();

    jComboBoxProducto.addItemListener(new java.awt.event.ItemListener()

    { public void itemStateChanged(java.awt.event.ItemEvent evt)

    { jComboBoxProductoItemStateChanged(evt);

    }

    });

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

    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));

  • 5/25/2018 Jtable Con Base de Datos

    11/24

    jTable con base de datos U.N.J.F.S.C.F.I.

    Ing. Carlos Palacios Garcia Pgina 11

    jScrollPaneTabla.setViewportView(jTableVenta_Detalle);

    getContentPane().add(jScrollPaneTabla, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 110, 510, 180));

    jButtonImprimir.setText("Imprimir");jButtonImprimir.addActionListener(new java.awt.event.ActionListener()

    { public void actionPerformed(java.awt.event.ActionEvent evt)

    { jButtonImprimirActionPerformed(evt);

    }

    });

    getContentPane().add(jButtonImprimir, new org.netbeans.lib.awtextra.AbsoluteConstraints(183, 310, 90, -1));

    pack();

    }

    private void jButtonAgregarActionPerformed(java.awt.event.ActionEvent evt)

    {

    Vector oVector=new Vector();

    oModeloDeTabla.addRow(oVector);

    jTextFieldNrodeItems.setText(oModeloDeTabla.getRowCount()+"");

    }

    private void jButtonEliminarActionPerformed(java.awt.event.ActionEvent evt)

    {

    if(jTableVenta_Detalle.getSelectedRow()==-1)

    {

    JOptionPane.showMessageDialog(null,"Seleccione una fila");

    }

    else

    {

    oModeloDeTabla.removeRow(jTableVenta_Detalle.getSelectedRow());

    }

    }

    private void jButtonSalirActionPerformed(java.awt.event.ActionEvent evt)

    { dispose();

    }

    private void jButtonImprimirActionPerformed(java.awt.event.ActionEvent evt)

    {

    System.out.println("Cantidad :"+jTableVenta_Detalle.getValueAt(jTableVenta_Detalle.getSelectedRow(),0));

    ClaseProducto oProducto= (ClaseProducto)jTableVenta_Detalle.getValueAt(jTableVenta_Detalle.getSelectedRow(), 1);

    System.out.println("Producto : "+oProducto.getProducto_id());

    System.out.println("Costo : "+oProducto.getCosto());

    System.out.println("Precio : "+jTableVenta_Detalle.getValueAt(jTableVenta_Detalle.getSelectedRow(),2));

    }

  • 5/25/2018 Jtable Con Base de Datos

    12/24

    jTable con base de datos U.N.J.F.S.C.F.I.

    Ing. Carlos Palacios Garcia Pgina 12

    // 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();

    }

    }

    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();

    jTableVenta_Detalle.setValueAt(oCalculo.getSubTotal_Parcial(),i,3);

    }

    // Variables declaration - do not modify

    private javax.swing.JButton jButtonAgregar;private javax.swing.JButton jButtonEliminar;

    private javax.swing.JButton jButtonImprimir;

    private javax.swing.JButton jButtonSalir;

    private javax.swing.JComboBox jComboBoxProducto;

    private javax.swing.JLabel jLabelNroDeItems;

    private javax.swing.JScrollPane jScrollPaneTabla;

    private javax.swing.JTable jTableVenta_Detalle;

    private javax.swing.JTextField jTextFieldNrodeItems;

    }

    package PaqueteModeloDeTabla;

    public class ClasePrincipal

    {

    public static void main(String[] args)

    {

    JFrameVenta_Detalle frame=new JFrameVenta_Detalle();

    frame.setVisible(true);

    }

    }

  • 5/25/2018 Jtable Con Base de Datos

    13/24

    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)

  • 5/25/2018 Jtable Con Base de Datos

    14/24

    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;

    }

    }

    }

  • 5/25/2018 Jtable Con Base de Datos

    15/24

    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;}

    }

  • 5/25/2018 Jtable Con Base de Datos

    16/24

    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;

    }

    }

  • 5/25/2018 Jtable Con Base de Datos

    17/24

    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;

    }

  • 5/25/2018 Jtable Con Base de Datos

    18/24

    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);

    jTableVenta_Detalle.getTableHeader().setReorderingAllowed(false);

  • 5/25/2018 Jtable Con Base de Datos

    19/24

    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);

    TableColumn columnaProducto = jTableVenta_Detalle.getColumnModel().getColumn(1);

    columnaProducto.setPreferredWidth(150);

    TableColumn columnaPrecio = jTableVenta_Detalle.getColumnModel().getColumn(2);columnaPrecio.setPreferredWidth(40);

    TableColumn columnaSubTotal = jTableVenta_Detalle.getColumnModel().getColumn(3);

    columnaSubTotal.setPreferredWidth(40);

    // 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

    */

    TableColumn columnaProducto = jTableVenta_Detalle.getColumnModel().getColumn(1);

    // Configuracin de un ComboBox como editor de celda

    columnaProducto.setCellEditor(new DefaultCellEditor(jComboBoxProducto));

    }

  • 5/25/2018 Jtable Con Base de Datos

    20/24

    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();

    jComboBoxProducto.addItemListener(new java.awt.event.ItemListener()

    { public void itemStateChanged(java.awt.event.ItemEvent evt) {

    jComboBoxProductoItemStateChanged(evt);

    }

    });

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

    jButtonAgregar.setText("Agregar");

    jButtonAgregar.addActionListener(new java.awt.event.ActionListener() {

    public void actionPerformed(java.awt.event.ActionEvent evt) {

    jButtonAgregarActionPerformed(evt);

    }

    });

  • 5/25/2018 Jtable Con Base de Datos

    21/24

    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));

    jScrollPaneTabla.setViewportView(jTableVenta_Detalle);

    getContentPane().add(jScrollPaneTabla, new org.netbeans.lib.awtextra.AbsoluteConstraints(30, 110, 510, 180));

    jButtonImprimir.setText("Imprimir");

    jButtonImprimir.addActionListener(new java.awt.event.ActionListener()

    { public void actionPerformed(java.awt.event.ActionEvent evt) {

    jButtonImprimirActionPerformed(evt);

    }

    });

    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));

  • 5/25/2018 Jtable Con Base de Datos

    22/24

    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();

    }

    private void jButtonAgregarActionPerformed(java.awt.event.ActionEvent evt)

    { Vector oVector=new Vector();

    oModeloDeTabla.addRow(oVector);

    jTextFieldNrodeItems.setText(oModeloDeTabla.getRowCount()+"");

    }

    private void jButtonEliminarActionPerformed(java.awt.event.ActionEvent evt)

    { if(jTableVenta_Detalle.getSelectedRow()==-1)

    { JOptionPane.showMessageDialog(null,"Seleccione una fila");

    }

    else

    { oModeloDeTabla.removeRow(jTableVenta_Detalle.getSelectedRow());

    }

    }

    private void jButtonSalirActionPerformed(java.awt.event.ActionEvent evt)

    { dispose();}

    private void jButtonImprimirActionPerformed(java.awt.event.ActionEvent evt)

    { System.out.println("Cantidad :"+jTableVenta_Detalle.getValueAt(jTableVenta_Detalle.getSelectedRow(),0));

    ClaseProducto oProducto= (ClaseProducto)jTableVenta_Detalle.getValueAt(jTableVenta_Detalle.getSelectedRow(),1);

    System.out.println("Producto : "+oProducto.getProducto_id());

    System.out.println("Costo : "+oProducto.getCosto());

    System.out.println("Precio : "+jTableVenta_Detalle.getValueAt(jTableVenta_Detalle.getSelectedRow(),2));

    }

    // 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();

    }

    }

  • 5/25/2018 Jtable Con Base de Datos

    23/24

    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();

    jTableVenta_Detalle.setValueAt(oCalculo.getSubTotal_Parcial(),i,3);

    }

    private void CalculoDeMonto()

    { claseCalculoDeTotal oCalculo = new ClaseCalculoDeTotal();

    for(int i=0;i

  • 5/25/2018 Jtable Con Base de Datos

    24/24

    jTable con base de datos U.N.J.F.S.C.F.I.

    Ing. Carlos Palacios Garcia Pgina 24

    Aplicacin en ejecucin:


Recommended