Date post: | 15-Oct-2015 |
Category: |
Documents |
Upload: | carlos-palacios-garcia |
View: | 22 times |
Download: | 0 times |
of 24
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: