factura en java con mysql_docx
TRANSCRIPT
![Page 1: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/1.jpg)
FACTURA EN JAVA(ECLIPSE) CON MYSQL
package moduloCliente;
import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JFrame;import javax.swing.JButton;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JLabel;import javax.swing.JTextField;import javax.swing.table.DefaultTableModel;
José Jesús Balmaceda – Tec. Computación e Informática Página 1
![Page 2: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/2.jpg)
import java.awt.SystemColor;import java.awt.event.KeyEvent;import java.text.DecimalFormat;
import javax.swing.SwingConstants;import moduloData.Classconexion;
public class JFactura extends JFrame {DefaultTableModel modelo;private static final long serialVersionUID = 1L;private JPanel jContentPane = null;private JButton btn_agregar = null;private JScrollPane ScrollPane = null;private JTable tabla = null;private JPanel Paneltotal = null;private JLabel lbl_subtotal = null;private JLabel lbl_igv = null;private JLabel lbl_total = null;private JTextField jtxt_subtotal = null;private JTextField jtxt_igv = null;private JTextField jtxt_total = null;private JPanel PanelProducto = null;private JLabel jLabel = null;private JTextField jtxt_item = null;private JLabel lbl_nombre = null;private JTextField jtxt_nombre = null;private JLabel lbl_descripcion = null;private JTextField jtxt_descripcion = null;private JLabel lbl_precio = null;private JTextField jtxt_precio = null;private JLabel lbl_cantidad = null;private JTextField jtxt_cantidad;private JTextField jtxt_detalle = null;private JPanel Panelbotones = null;private JButton btn_eliminar = null;private JButton btn_modificar = null;private JPanel PanelFactura = null;private JButton btn_nuevaFactura = null;private JButton btn_cancelar = null;private JPanel PanelCliente = null;private JLabel lbl_cliente = null;private JTextField jtxt_cliente = null;private JLabel lbl_direccion = null;private JTextField jtxt_direccion = null;private JLabel lbl_telefono = null;private JTextField jtxt_telefono = null;private JLabel lbl_ruc = null;private JTextField jtxt_ruc = null;private JLabel lbl_email = null;private JTextField jtxt_email = null;private JButton btn_buscliente = null;private JPanel PanelNumFac = null;private JPanel jPanel = null;private JButton btn_reporte = null;private JLabel lbl_factura = null;
José Jesús Balmaceda – Tec. Computación e Informática Página 2
![Page 3: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/3.jpg)
private JLabel lbl_serie = null;Classconexion objconex=new Classconexion();private JLabel lbl_numfac = null;private JPanel PanelFecha = null;private JLabel jLabel1 = null;private JLabel lbl_fecha_sistema = null;
public JFactura() {super();initialize();temporal();inicio();
}
public void llamarProcedimientoAlmacenadoFechaServidor(){
try{
objconex.conexion();objconex.cstmt=objconex.cn.prepareCall("call fecha(?)");objconex.cstmt.execute();lbl_fecha_sistema.setText(""+objconex.cstmt.getString(1));objconex.cstmt.close();objconex.cn.close();
}catch(Exception ex){System.out.print(""+ex.getMessage());
}}
public void temporal(){String cols[] =
{"Item","Nombre","Descripción","Precio","Cantidad","Monto"};//*************************modelo=new
DefaultTableModel(cols,0);//************************************************tabla.setModel(modelo);
}
public void inicio(){
jtxt_subtotal.setText("0.00");jtxt_igv.setText("0.00");jtxt_total.setText("0.00");
}
private void initialize() {this.setSize(985, 707);this.setBackground(java.awt.SystemColor.activeCaptionBorder);this.setResizable(false);this.setContentPane(getJContentPane());this.setTitle("Factura");
José Jesús Balmaceda – Tec. Computación e Informática Página 3
![Page 4: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/4.jpg)
}
private JPanel getJContentPane() {if (jContentPane == null) {
jContentPane = new JPanel();jContentPane.setLayout(null);jContentPane.setBackground(java.awt.SystemColor.scrollbar);jContentPane.add(getScrollPane(), null);jContentPane.add(getPaneltotal(), null);jContentPane.add(getPanelProducto(), null);jContentPane.add(getJtxt_detalle(), null);jContentPane.add(getPanelbotones(), null);jContentPane.add(getPanelFactura(), null);jContentPane.add(getPanelCliente(), null);jContentPane.add(getPanelNumFac(), null);jContentPane.add(getJPanel(), null);jContentPane.add(getPanelFecha(), null);
}return jContentPane;
}
public void limpiaNumfacFecha(){
lbl_fecha_sistema.setText("");lbl_numfac.setText("FAC00000");
}
private JButton getBtn_agregar() {if (btn_agregar == null) {
btn_agregar = new JButton();btn_agregar.setText("Agregar");btn_agregar.setEnabled(false);btn_agregar.setBounds(new java.awt.Rectangle(5,10,123,26));btn_agregar.addActionListener(new
java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent
e) {try{
JFactura _this = new JFactura();AgregarProductos ap = new
AgregarProductos();ap.Valores = "otro formulario";ap.Frame = _this;ap.setVisible(true);if(ap.tabla.getRowCount()>0 &&
ap.jtxt_nombreprod.getText().intern()!=""){
jtxt_item.setText(ap.tabla.getValueAt(ap.tabla.getSelectedRow(),0).toString());
jtxt_nombre.setText(ap.tabla.getValueAt(ap.tabla.getSelectedRow(),1).toString());
jtxt_descripcion.setText(ap.tabla.getValueAt(ap.tabla.getSelectedRow(),2).toString());
José Jesús Balmaceda – Tec. Computación e Informática Página 4
![Page 5: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/5.jpg)
jtxt_precio.setText(ap.tabla.getValueAt(ap.tabla.getSelectedRow(),3).toString());jtxt_cantidad.setEnabled(true);jtxt_cantidad.requestFocus();
}else{
limpiar();}
}catch(Exception ex){
}}
});}return btn_agregar;
}
private JScrollPane getScrollPane() {if (ScrollPane == null) {
ScrollPane = new JScrollPane();ScrollPane.setLocation(new java.awt.Point(155,362));ScrollPane.setViewportView(getTabla());ScrollPane.setSize(new java.awt.Dimension(670,170));
}return ScrollPane;
}
private JTable getTabla() {if (tabla == null) {
tabla = new JTable();tabla.setShowGrid(true);tabla.setForeground(new java.awt.Color(102,102,102));tabla.setBackground(java.awt.SystemColor.controlHighlight);
}return tabla;
}
private JPanel getPaneltotal() {if (Paneltotal == null) {
lbl_total = new JLabel();lbl_total.setBounds(new java.awt.Rectangle(30,50,74,21));
lbl_total.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_total.setForeground(java.awt.Color.white);lbl_total.setText("Total : ");lbl_igv = new JLabel();lbl_igv.setBounds(new java.awt.Rectangle(30,29,74,20));
lbl_igv.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_igv.setForeground(java.awt.Color.white);lbl_igv.setText("Igv(19%) : ");
José Jesús Balmaceda – Tec. Computación e Informática Página 5
![Page 6: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/6.jpg)
lbl_subtotal = new JLabel();lbl_subtotal.setBounds(new java.awt.Rectangle(30,8,74,21));
lbl_subtotal.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_subtotal.setForeground(java.awt.Color.white);lbl_subtotal.setText("Subtotal : ");Paneltotal = new JPanel();Paneltotal.setLayout(null);Paneltotal.setBounds(new java.awt.Rectangle(566,543,249,84));
Paneltotal.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.activeCaptionBorder,1));
Paneltotal.setBackground(java.awt.SystemColor.scrollbar);Paneltotal.add(lbl_subtotal, null);Paneltotal.add(lbl_igv, null);Paneltotal.add(lbl_total, null);Paneltotal.add(getJtxt_subtotal(), null);Paneltotal.add(getJtxt_igv(), null);Paneltotal.add(getJtxt_total(), null);
}return Paneltotal;
}
private JTextField getJtxt_subtotal() {if (jtxt_subtotal == null) {
jtxt_subtotal = new JTextField();jtxt_subtotal.setEnabled(true);jtxt_subtotal.setEditable(false);
jtxt_subtotal.setBackground(java.awt.SystemColor.controlHighlight);jtxt_subtotal.setText("");jtxt_subtotal.setForeground(new java.awt.Color(102,102,102));jtxt_subtotal.setBounds(new java.awt.Rectangle(104,8,122,20));
}return jtxt_subtotal;
}
private JTextField getJtxt_igv() {if (jtxt_igv == null) {
jtxt_igv = new JTextField();jtxt_igv.setLocation(new java.awt.Point(104,30));jtxt_igv.setEnabled(true);jtxt_igv.setEditable(false);jtxt_igv.setBackground(java.awt.SystemColor.controlHighlight);jtxt_igv.setForeground(new java.awt.Color(102,102,102));jtxt_igv.setSize(new java.awt.Dimension(122,20));
}return jtxt_igv;
}
private JTextField getJtxt_total() {if (jtxt_total == null) {
jtxt_total = new JTextField();jtxt_total.setBounds(new java.awt.Rectangle(104,52,122,20));
José Jesús Balmaceda – Tec. Computación e Informática Página 6
![Page 7: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/7.jpg)
jtxt_total.setEditable(false);jtxt_total.setBackground(java.awt.SystemColor.controlHighlight);jtxt_total.setForeground(new java.awt.Color(102,102,102));jtxt_total.setEnabled(true);
}return jtxt_total;
}
private JPanel getPanelProducto() {if (PanelProducto == null) {
lbl_cantidad = new JLabel();
lbl_cantidad.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_cantidad.setLocation(new java.awt.Point(193,35));lbl_cantidad.setSize(new java.awt.Dimension(77,21));lbl_cantidad.setForeground(java.awt.Color.white);lbl_cantidad.setText("Cantidad : ");lbl_precio = new JLabel();lbl_precio.setBounds(new java.awt.Rectangle(14,35,51,21));
lbl_precio.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_precio.setForeground(java.awt.Color.white);lbl_precio.setText("Precio : ");lbl_descripcion = new JLabel();
lbl_descripcion.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_descripcion.setLocation(new java.awt.Point(421,12));lbl_descripcion.setSize(new java.awt.Dimension(90,21));lbl_descripcion.setForeground(java.awt.Color.white);lbl_descripcion.setText("Descripción : ");lbl_nombre = new JLabel();
lbl_nombre.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_nombre.setLocation(new java.awt.Point(193,11));lbl_nombre.setSize(new java.awt.Dimension(77,21));lbl_nombre.setForeground(java.awt.Color.white);lbl_nombre.setText("Nombre : ");jLabel = new JLabel();jLabel.setText("Item : ");jLabel.setLocation(new java.awt.Point(25,11));jLabel.setSize(new java.awt.Dimension(40,21));jLabel.setForeground(java.awt.Color.white);
jLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);PanelProducto = new JPanel();PanelProducto.setLayout(null);
PanelProducto.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.activeCaptionBorder,1));
PanelProducto.setLocation(new java.awt.Point(155,274));PanelProducto.setSize(new java.awt.Dimension(670,68));PanelProducto.setBackground(java.awt.SystemColor.scrollbar);PanelProducto.add(jLabel, null);PanelProducto.add(getJtxt_item(), null);
José Jesús Balmaceda – Tec. Computación e Informática Página 7
![Page 8: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/8.jpg)
PanelProducto.add(lbl_nombre, null);PanelProducto.add(getJtxt_nombre(), null);PanelProducto.add(lbl_descripcion, null);PanelProducto.add(getJtxt_descripcion(), null);PanelProducto.add(lbl_precio, null);PanelProducto.add(getJtxt_precio(), null);PanelProducto.add(lbl_cantidad, null);PanelProducto.add(getJtxt_cantidad(), null);
}return PanelProducto;
}
private JTextField getJtxt_item() {if (jtxt_item == null) {
jtxt_item = new JTextField();jtxt_item.setLocation(new java.awt.Point(67,11));jtxt_item.setEnabled(true);jtxt_item.setEditable(false);jtxt_item.setBackground(java.awt.SystemColor.controlHighlight);jtxt_item.setForeground(new java.awt.Color(102,102,102));jtxt_item.setText("");jtxt_item.setSize(new java.awt.Dimension(122,21));
}return jtxt_item;
}
private JTextField getJtxt_nombre() {if (jtxt_nombre == null) {
jtxt_nombre = new JTextField();jtxt_nombre.setBounds(new java.awt.Rectangle(272,11,147,23));jtxt_nombre.setEditable(false);
jtxt_nombre.setBackground(java.awt.SystemColor.controlHighlight);jtxt_nombre.setForeground(new java.awt.Color(102,102,102));jtxt_nombre.setEnabled(true);
}return jtxt_nombre;
}
private JTextField getJtxt_descripcion() {if (jtxt_descripcion == null) {
jtxt_descripcion = new JTextField();jtxt_descripcion.setBounds(new
java.awt.Rectangle(513,12,141,21));jtxt_descripcion.setEditable(false);
jtxt_descripcion.setBackground(java.awt.SystemColor.controlHighlight);jtxt_descripcion.setForeground(new
java.awt.Color(102,102,102));jtxt_descripcion.setEnabled(true);
}return jtxt_descripcion;
}
José Jesús Balmaceda – Tec. Computación e Informática Página 8
![Page 9: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/9.jpg)
private JTextField getJtxt_precio() {if (jtxt_precio == null) {
jtxt_precio = new JTextField();jtxt_precio.setBounds(new java.awt.Rectangle(67,35,122,21));jtxt_precio.setEditable(false);
jtxt_precio.setBackground(java.awt.SystemColor.controlHighlight);jtxt_precio.setForeground(new java.awt.Color(102,102,102));jtxt_precio.setEnabled(true);
}return jtxt_precio;
}
private JTextField getJtxt_cantidad() {if (jtxt_cantidad == null) {
jtxt_cantidad = new JTextField();jtxt_cantidad.setBounds(new
java.awt.Rectangle(272,36,147,21));jtxt_cantidad.setEditable(true);jtxt_cantidad.setBackground(java.awt.Color.red);jtxt_cantidad.setFont(new java.awt.Font("Dialog",
java.awt.Font.BOLD, 12));
jtxt_cantidad.setForeground(java.awt.SystemColor.controlLtHighlight);jtxt_cantidad.setColumns(1);jtxt_cantidad.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyTyped(java.awt.event.KeyEvent e) {try{
int tecla=e.getKeyChar();if(tecla==KeyEvent.VK_ENTER){
double monto;// Establecemos Ascii, para utilizar la tecla Enter(10).
int enter=e.getKeyChar();
if(enter==10){
int fila;
for(fila=0;fila<modelo.getRowCount();fila++){
//validamos para que no se agregue dos veces un mismo producto.
if(tabla.getRowCount()>0 && jtxt_nombre.getText().intern()==tabla.getValueAt(fila,1).toString().intern())
{
JOptionPane.showMessageDialog(null,"El producto "+ jtxt_nombre.getText() +" ya ha sido agregado.","Alerta",JOptionPane.WARNING_MESSAGE);
limpiar();return;
}
José Jesús Balmaceda – Tec. Computación e Informática Página 9
![Page 10: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/10.jpg)
}Object row[]=new Object[6];
monto=Double.parseDouble(jtxt_precio.getText())*Double.parseDouble(jtxt_cantidad.getText());
row[0]=jtxt_item.getText();
row[1]=jtxt_nombre.getText();
row[2]=jtxt_descripcion.getText();row[3]=jtxt_precio.getText();
row[4]=jtxt_cantidad.getText();row[5]=""+monto;modelo.addRow(row);//****************************sumaTotal();limpiar();
btn_nuevaFactura.setEnabled(true);
btn_eliminar.setEnabled(true);
btn_modificar.setEnabled(true);}
return;}//validamos para que el maximo//numero de caracteres que podamos//ingresar sea uno.if(jtxt_cantidad.getText().length()>0){
e.consume();}//validacion para solo ingresar numerosif(!(tecla>=KeyEvent.VK_1 &&
tecla<=KeyEvent.VK_9)){
e.consume();return;
}}catch(Exception ex){
}}
});jtxt_cantidad.setEnabled(false);
}return jtxt_cantidad;
}
public void sumaTotal(){
José Jesús Balmaceda – Tec. Computación e Informática Página 10
![Page 11: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/11.jpg)
double umonto=0;for(int ciclo=0;ciclo<tabla.getRowCount();ciclo++){
umonto=umonto+Double.parseDouble(tabla.getValueAt(ciclo,5).toString());}DecimalFormat df=new DecimalFormat("0.00");jtxt_subtotal.setText(df.format(umonto).replace(",","."));jtxt_igv.setText(df.format(umonto*0.19).replace(",","."));double total=umonto+(umonto*0.19);jtxt_total.setText(df.format(total).replace(",","."));
}
public void limpiar(){
jtxt_item.setText("");jtxt_nombre.setText("");jtxt_descripcion.setText("");jtxt_precio.setText("");jtxt_cantidad.setText("");jtxt_item.setEditable(false);jtxt_nombre.setEditable(false);jtxt_descripcion.setEditable(false);jtxt_precio.setEditable(false);jtxt_cantidad.setEnabled(false);
}
/** * This method initializes jtxt_detalle * * @return javax.swing.JTextField */private JTextField getJtxt_detalle() {
if (jtxt_detalle == null) {jtxt_detalle = new JTextField();jtxt_detalle.setBounds(new java.awt.Rectangle(155,343,670,19));jtxt_detalle.setEditable(false);jtxt_detalle.setText("Detalle de productos");jtxt_detalle.setFont(new java.awt.Font("Dialog", java.awt.Font.BOLD,
12));jtxt_detalle.setForeground(java.awt.SystemColor.controlLtHighlight);jtxt_detalle.setBackground(java.awt.Color.gray);
}return jtxt_detalle;
}
/** * This method initializes Panelbotones * * @return javax.swing.JPanel */private JPanel getPanelbotones() {
if (Panelbotones == null) {Panelbotones = new JPanel();Panelbotones.setLayout(null);Panelbotones.setBounds(new java.awt.Rectangle(831,350,134,106));
Panelbotones.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.activeCaptionBorder,1));
José Jesús Balmaceda – Tec. Computación e Informática Página 11
![Page 12: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/12.jpg)
Panelbotones.setBackground(java.awt.SystemColor.scrollbar);Panelbotones.add(getBtn_agregar(), null);Panelbotones.add(getBtn_eliminar(), null);Panelbotones.add(getBtn_modificar(), null);
}return Panelbotones;
}
/** * This method initializes btn_eliminar * * @return javax.swing.JButton */private JButton getBtn_eliminar() {
if (btn_eliminar == null) {btn_eliminar = new JButton();btn_eliminar.setText("Eliminar");btn_eliminar.setEnabled(false);btn_eliminar.setBounds(new java.awt.Rectangle(5,38,123,26));btn_eliminar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {QuitarProducto();
}});
}return btn_eliminar;
}
public void QuitarProducto(){try{
if(tabla.getRowCount()>0){
int indice=tabla.getSelectedRow();if(indice==-1)
return;modelo.removeRow(indice);sumaTotal();
}else{
JOptionPane.showMessageDialog(null,"No hay ningún producto en la factura","Eliminar",JOptionPane.WARNING_MESSAGE);
}}catch(Exception ex){
JOptionPane.showMessageDialog(null,ex.getMessage());}
}/** * This method initializes btn_modificar *
José Jesús Balmaceda – Tec. Computación e Informática Página 12
![Page 13: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/13.jpg)
* @return javax.swing.JButton */private JButton getBtn_modificar() {
if (btn_modificar == null) {btn_modificar = new JButton();btn_modificar.setText("Modificar");btn_modificar.setEnabled(false);btn_modificar.setBounds(new java.awt.Rectangle(5,66,123,26));btn_modificar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {try{
if(tabla.getRowCount()<1){
JOptionPane.showMessageDialog(null,"No hay ningún producto en la factura","Modificar",JOptionPane.INFORMATION_MESSAGE);
return;}String
modificar=JOptionPane.showInputDialog(tabla, "Ingrese cantidad","Modificar",JOptionPane.INFORMATION_MESSAGE);
if(tabla.getRowCount()>0 && modificar.intern()!=""){
tabla.setValueAt(modificar,tabla.getSelectedRow(),4);
//**************************************************double u_monto;
u_monto=Double.parseDouble(tabla.getValueAt(tabla.getSelectedRow(),3).toString())*Double.parseDouble(tabla.getValueAt(tabla.getSelectedRow(),4).toString());
tabla.setValueAt(""+u_monto,tabla.getSelectedRow(),5);
//****************************************************sumaTotal();
}}catch(Exception ex){}
}});
}return btn_modificar;
}
/** * This method initializes PanelFactura * * @return javax.swing.JPanel */private JPanel getPanelFactura() {
José Jesús Balmaceda – Tec. Computación e Informática Página 13
![Page 14: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/14.jpg)
if (PanelFactura == null) {PanelFactura = new JPanel();PanelFactura.setLayout(null);PanelFactura.setLocation(new java.awt.Point(15,365));
PanelFactura.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.activeCaptionBorder,1));
PanelFactura.setSize(new java.awt.Dimension(134,106));PanelFactura.setBackground(java.awt.SystemColor.scrollbar);PanelFactura.add(getBtn_nuevaFactura(), null);PanelFactura.add(getBtn_cancelar(), null);PanelFactura.add(getBtn_reporte(), null);
}return PanelFactura;
}public void GeneraFac(){
try{
objconex.conexion();objconex.st=objconex.cn.createStatement();String sql="select count(numfac)from tbfactura";String cad;int numero;objconex.rs=objconex.st.executeQuery(sql);objconex.rs.next();cad=objconex.rs.getString(1);numero=Integer.parseInt(cad)+1;lbl_numfac.setText("FAC0000"+numero);objconex.rs.close();objconex.st.close();objconex.cn.close();
}catch(Exception ex){
System.out.println("Error:"+ex.getMessage());}
}
private JButton getBtn_nuevaFactura() {if (btn_nuevaFactura == null) {
btn_nuevaFactura = new JButton();btn_nuevaFactura.setText("Nueva Factura");btn_nuevaFactura.setBounds(new java.awt.Rectangle(5,10,123,26));btn_nuevaFactura.addActionListener(new
java.awt.event.ActionListener() {public void actionPerformed(java.awt.event.ActionEvent e) {
try{if(btn_nuevaFactura.getText().intern()=="Nueva
Factura"){
GeneraFac();
José Jesús Balmaceda – Tec. Computación e Informática Página 14
![Page 15: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/15.jpg)
llamarProcedimientoAlmacenadoFechaServidor();btn_nuevaFactura.setText("Grabar");btn_cancelar.setEnabled(true);btn_nuevaFactura.setEnabled(false);btn_buscliente.setEnabled(true);//*******************************************
}else{
if(JOptionPane.showConfirmDialog(null,"Realmente desea grabar esta factura","Grabar",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION)
{insertafactura();
//insertafactura(lbl_numfac.getText(),Double.parseDouble(jtxt_subtotal.getText()),Double.parseDouble(jtxt_igv.getText()),Double.parseDouble(jtxt_total.getText()),lbl_fecha_sistema.getText());
JOptionPane.showMessageDialog(null,"El registro ha sido grabado correctamente","Grabar",JOptionPane.INFORMATION_MESSAGE);
aftergrabar();}
}}catch(Exception ex){
System.out.print(ex.getMessage());}
}});
}return btn_nuevaFactura;
}
public void insertafactura(){
try{
//INSERTAMOS CABECERA DE FACTURAobjconex.conexion();String sql="insert into tbfactura values('"+lbl_numfac.getText()
+"','"+jtxt_subtotal.getText()+"','"+jtxt_igv.getText()+"','"+jtxt_total.getText()+"','"+lbl_fecha_sistema.getText()+"')";
objconex.cmd=objconex.cn.prepareStatement(sql);objconex.cmd.execute();objconex.cmd.close();objconex.cn.close();//********************************************************************************//INSERTAMOS DETALLE DE FACTURA//item nombre descripcion precio cantidad montoobjconex.conexion();String sqldetalle="";int row;for(row=0;row<tabla.getRowCount();row++)
José Jesús Balmaceda – Tec. Computación e Informática Página 15
![Page 16: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/16.jpg)
{sqldetalle="insert into tbdetfactura values('"+lbl_numfac.getText()
+"','"+tabla.getValueAt(row,0).toString()+"','"+tabla.getValueAt(row,3).toString()+"','"+tabla.getValueAt(row,4).toString()+"')";
objconex.cmd=objconex.cn.prepareStatement(sqldetalle);objconex.cmd.execute();
}
}catch(Exception ex){
System.out.print("Error:"+ex.getMessage());}
}
private JButton getBtn_cancelar() {if (btn_cancelar == null) {
btn_cancelar = new JButton();btn_cancelar.setText("Cancelar");btn_cancelar.setEnabled(false);btn_cancelar.setBounds(new java.awt.Rectangle(5,38,123,26));btn_cancelar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {try{
if(JOptionPane.showConfirmDialog(null,"Realmente desea cancelar las acciones realizadas","Cancelar",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION)
{limpiar();limpiaNumfacFecha();limpiarcliente();inicio();temporal();btn_nuevaFactura.setText("Nueva
Factura");btn_cancelar.setEnabled(false);btn_nuevaFactura.setEnabled(true);btn_buscliente.setEnabled(false);btn_agregar.setEnabled(false);btn_eliminar.setEnabled(false);btn_modificar.setEnabled(false);
}}catch(Exception ex){
System.out.print(ex.getMessage());}
}});
}return btn_cancelar;
}
public void aftergrabar()
José Jesús Balmaceda – Tec. Computación e Informática Página 16
![Page 17: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/17.jpg)
{limpiar();limpiaNumfacFecha();limpiarcliente();inicio();temporal();btn_nuevaFactura.setText("Nueva Factura");btn_cancelar.setEnabled(false);btn_nuevaFactura.setEnabled(true);btn_buscliente.setEnabled(false);btn_agregar.setEnabled(false);btn_eliminar.setEnabled(false);btn_modificar.setEnabled(false);
}
/** * This method initializes PanelCliente * * @return javax.swing.JPanel */private JPanel getPanelCliente() {
if (PanelCliente == null) {lbl_email = new JLabel();lbl_email.setHorizontalAlignment(SwingConstants.RIGHT);lbl_email.setText("Email : ");lbl_email.setLocation(new java.awt.Point(227,56));lbl_email.setSize(new java.awt.Dimension(53,21));lbl_email.setForeground(SystemColor.controlLtHighlight);lbl_ruc = new JLabel();lbl_ruc.setHorizontalAlignment(SwingConstants.RIGHT);lbl_ruc.setText("Ruc : ");lbl_ruc.setLocation(new java.awt.Point(36,56));lbl_ruc.setSize(new java.awt.Dimension(52,21));lbl_ruc.setForeground(SystemColor.controlLtHighlight);lbl_telefono = new JLabel();lbl_telefono.setHorizontalAlignment(SwingConstants.RIGHT);lbl_telefono.setText("Teléfono : ");lbl_telefono.setLocation(new java.awt.Point(337,33));lbl_telefono.setSize(new java.awt.Dimension(66,21));lbl_telefono.setForeground(SystemColor.controlLtHighlight);lbl_direccion = new JLabel();
lbl_direccion.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_direccion.setText("Dirección : ");lbl_direccion.setLocation(new java.awt.Point(18,33));lbl_direccion.setSize(new java.awt.Dimension(69,21));lbl_direccion.setForeground(java.awt.SystemColor.controlLtHighlight);lbl_cliente = new JLabel();lbl_cliente.setForeground(java.awt.SystemColor.controlLtHighlight);lbl_cliente.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);lbl_cliente.setLocation(new java.awt.Point(28,10));lbl_cliente.setSize(new java.awt.Dimension(58,21));lbl_cliente.setText("Cliente : ");PanelCliente = new JPanel();PanelCliente.setLayout(null);
José Jesús Balmaceda – Tec. Computación e Informática Página 17
![Page 18: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/18.jpg)
PanelCliente.setBounds(new java.awt.Rectangle(155,182,670,86));PanelCliente.setBackground(java.awt.SystemColor.scrollbar);
PanelCliente.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.activeCaptionBorder,1));
PanelCliente.add(lbl_cliente, null);PanelCliente.add(getJtxt_cliente(), null);PanelCliente.add(lbl_direccion, null);PanelCliente.add(getJtxt_direccion(), null);PanelCliente.add(lbl_telefono, null);PanelCliente.add(getJtxt_telefono(), null);PanelCliente.add(lbl_ruc, null);PanelCliente.add(getJtxt_ruc(), null);PanelCliente.add(lbl_email, null);PanelCliente.add(getJtxt_email(), null);PanelCliente.add(getBtn_buscliente(), null);
}return PanelCliente;
}
/** * This method initializes jtxt_cliente * * @return javax.swing.JTextField */private JTextField getJtxt_cliente() {
if (jtxt_cliente == null) {jtxt_cliente = new JTextField();jtxt_cliente.setLocation(new java.awt.Point(89,10));jtxt_cliente.setText("");jtxt_cliente.setBackground(java.awt.SystemColor.controlHighlight);jtxt_cliente.setEditable(false);jtxt_cliente.setSize(new java.awt.Dimension(440,21));
}return jtxt_cliente;
}
/** * This method initializes jTextField * * @return javax.swing.JTextField */private JTextField getJtxt_direccion() {
if (jtxt_direccion == null) {jtxt_direccion = new JTextField();jtxt_direccion.setText("");jtxt_direccion.setBackground(java.awt.SystemColor.controlHighlight);jtxt_direccion.setEditable(false);jtxt_direccion.setBounds(new java.awt.Rectangle(89,33,242,21));
}return jtxt_direccion;
}
/**
José Jesús Balmaceda – Tec. Computación e Informática Página 18
![Page 19: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/19.jpg)
* This method initializes jTextField1 * * @return javax.swing.JTextField */private JTextField getJtxt_telefono() {
if (jtxt_telefono == null) {jtxt_telefono = new JTextField();jtxt_telefono.setLocation(new java.awt.Point(406,33));jtxt_telefono.setBackground(java.awt.SystemColor.controlHighlight);jtxt_telefono.setEditable(false);jtxt_telefono.setSize(new java.awt.Dimension(123,21));
}return jtxt_telefono;
}
/** * This method initializes jTextField2 * * @return javax.swing.JTextField */private JTextField getJtxt_ruc() {
if (jtxt_ruc == null) {jtxt_ruc = new JTextField();jtxt_ruc.setBounds(new java.awt.Rectangle(89,56,132,21));jtxt_ruc.setEditable(false);jtxt_ruc.setBackground(java.awt.SystemColor.controlHighlight);
}return jtxt_ruc;
}
/** * This method initializes jTextField3 * * @return javax.swing.JTextField */private JTextField getJtxt_email() {
if (jtxt_email == null) {jtxt_email = new JTextField();jtxt_email.setLocation(new java.awt.Point(283,57));jtxt_email.setBackground(java.awt.SystemColor.controlHighlight);jtxt_email.setEditable(false);jtxt_email.setText("");jtxt_email.setSize(new java.awt.Dimension(246,21));
}return jtxt_email;
}
/** * This method initializes jButton * * @return javax.swing.JButton */private JButton getBtn_buscliente() {
if (btn_buscliente == null) {btn_buscliente = new JButton();
José Jesús Balmaceda – Tec. Computación e Informática Página 19
![Page 20: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/20.jpg)
btn_buscliente.setText("Buscar Cliente");btn_buscliente.setSize(new java.awt.Dimension(123,26));btn_buscliente.setEnabled(false);btn_buscliente.setLocation(new java.awt.Point(536,31));btn_buscliente.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {try{
JFactura _this = new JFactura();BuscarCliente bc = new BuscarCliente();bc.Valores="El otro formulario";bc.Frame=_this;bc.setVisible(true);if(bc.tablaCliente.getRowCount()>0 &&
bc.jtxt_nomcliente.getText().intern()!=""){
jtxt_cliente.setText(bc.tablaCliente.getValueAt(bc.tablaCliente.getSelectedRow(),1).toString());
jtxt_direccion.setText(bc.tablaCliente.getValueAt(bc.tablaCliente.getSelectedRow(),2).toString());
jtxt_telefono.setText(bc.tablaCliente.getValueAt(bc.tablaCliente.getSelectedRow(),3).toString());
jtxt_ruc.setText(bc.tablaCliente.getValueAt(bc.tablaCliente.getSelectedRow(),4).toString());
jtxt_email.setText(bc.tablaCliente.getValueAt(bc.tablaCliente.getSelectedRow(),5).toString());
btn_agregar.setEnabled(true);}else{
limpiarcliente();}
}catch(Exception ex){
}}
});}return btn_buscliente;
}
public void limpiarcliente(){
José Jesús Balmaceda – Tec. Computación e Informática Página 20
![Page 21: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/21.jpg)
jtxt_cliente.setText("");jtxt_direccion.setText("");jtxt_telefono.setText("");jtxt_ruc.setText("");jtxt_email.setText("");
}/** * This method initializes PanelNumFac * * @return javax.swing.JPanel */private JPanel getPanelNumFac() {
if (PanelNumFac == null) {lbl_numfac = new JLabel();lbl_numfac.setText("FAC00000");lbl_numfac.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);lbl_numfac.setBounds(new java.awt.Rectangle(133,63,71,24));lbl_serie = new JLabel();lbl_serie.setText("001 - ");lbl_serie.setBounds(new java.awt.Rectangle(102,63,35,24));lbl_factura = new JLabel();lbl_factura.setBounds(new java.awt.Rectangle(37,45,219,26));
lbl_factura.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);lbl_factura.setText("FACTURA");PanelNumFac = new JPanel();PanelNumFac.setLayout(null);PanelNumFac.setBounds(new java.awt.Rectangle(579,37,291,134));PanelNumFac.setBackground(java.awt.SystemColor.scrollbar);
PanelNumFac.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.activeCaptionBorder,1));
PanelNumFac.add(lbl_factura, null);PanelNumFac.add(lbl_serie, null);PanelNumFac.add(lbl_numfac, null);
}return PanelNumFac;
}
/** * This method initializes jPanel * * @return javax.swing.JPanel */private JPanel getJPanel() {
if (jPanel == null) {jPanel = new JPanel();jPanel.setLayout(null);jPanel.setBounds(new java.awt.Rectangle(96,37,477,133));
jPanel.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.activeCaptionBorder,1));
jPanel.setBackground(java.awt.SystemColor.scrollbar);
José Jesús Balmaceda – Tec. Computación e Informática Página 21
![Page 22: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/22.jpg)
}return jPanel;
}
/** * This method initializes jButton * * @return javax.swing.JButton */private JButton getBtn_reporte() {
if (btn_reporte == null) {btn_reporte = new JButton();btn_reporte.setText("Reporte");btn_reporte.setEnabled(false);btn_reporte.setBounds(new java.awt.Rectangle(5,66,123,26));
}return btn_reporte;
}
/** * This method initializes PanelFecha * * @return javax.swing.JPanel */private JPanel getPanelFecha() {
if (PanelFecha == null) {lbl_fecha_sistema = new JLabel();lbl_fecha_sistema.setBounds(new java.awt.Rectangle(188,4,143,17));lbl_fecha_sistema.setText("");jLabel1 = new JLabel();jLabel1.setBounds(new java.awt.Rectangle(37,4,154,16));jLabel1.setText("Fecha y Hora del sistema : ");PanelFecha = new JPanel();PanelFecha.setLayout(null);PanelFecha.setLocation(new java.awt.Point(-1,656));PanelFecha.setBackground(java.awt.SystemColor.controlShadow);PanelFecha.setSize(new java.awt.Dimension(985,26));PanelFecha.add(jLabel1, null);PanelFecha.add(lbl_fecha_sistema, null);
}return PanelFecha;
}
/** * This method initializes fecha * * @return javax.swing.JButton */
} // @jve:decl-index=0:visual-constraint="10,-11"
José Jesús Balmaceda – Tec. Computación e Informática Página 22
![Page 23: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/23.jpg)
package moduloCliente;
import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JDialog;import javax.swing.JTextField;import javax.swing.JLabel;import javax.swing.BorderFactory;import java.awt.SystemColor;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.table.DefaultTableModel;import javax.swing.JOptionPane;
import moduloData.Classconexion;
public class BuscarCliente extends JDialog {
Classconexion objsql = new Classconexion();
public String Valores;public void setValores(String xValores){
Valores=xValores;}
public String getValores(){
return Valores;}//***********************************public JFrame Frame;public void setFrame(JFrame xFrame){
Frame=xFrame;}
public JFrame getFrame(){
José Jesús Balmaceda – Tec. Computación e Informática Página 23
![Page 24: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/24.jpg)
return Frame;}//***********************************//***********************************//***********************************//***********************************
private static final long serialVersionUID = 1L;public JPanel jContentPane = null;public JPanel jPanel = null;public JTextField jtxt_nomcliente = null;public JLabel lbl_cliente = null;public JTextField jtxt_cliente = null;public JScrollPane ScrollPane = null;public JTable tablaCliente = null;
DefaultTableModel modeloTablaInicio;DefaultTableModel modeloSql;
public void temporalinicio(){
try{
String header[]= {"Item","Nombre","Dirección","Teléfono","Ruc","Email"};
modeloTablaInicio=new DefaultTableModel(header,0);tablaCliente.setModel(modeloTablaInicio);
}catch(Exception ex){JOptionPane.showMessageDialog(null,ex.getMessage());
}}
public void consultasql(){try{
objsql.conexion();objsql.st=objsql.cn.createStatement();objsql.rs=objsql.st.executeQuery("select
item,nombres,direccion,telefono,ruc,email from tbclientes where nombres LIKE '"+this.jtxt_nomcliente.getText()+"%"+"'");
objsql.rs.next();String
col[]={"Item","Nombre","Dirección","Teléfono","Ruc","Email"};modeloSql=new DefaultTableModel(col,0);Object row[]=new Object[6];if(objsql.rs.getRow()>0 && jtxt_nomcliente.getText().intern()!=""){
row[0]=objsql.rs.getString("item");row[1]=objsql.rs.getString("nombres");row[2]=objsql.rs.getString("direccion");row[3]=objsql.rs.getString("telefono");row[4]=objsql.rs.getString("ruc");
José Jesús Balmaceda – Tec. Computación e Informática Página 24
![Page 25: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/25.jpg)
row[5]=objsql.rs.getString("email");modeloSql.addRow(row);tablaCliente.setModel(modeloSql);
}else{
String col_empty[]={"Item","Nombre","Dirección","Teléfono","Ruc","Email"};
modeloSql=new DefaultTableModel(col_empty,0);tablaCliente.setModel(modeloSql);
}
}catch(Exception ex){}
}
public void centrarVentana(){
this.setLocationRelativeTo(null);}
public BuscarCliente() {super();initialize();temporalinicio();centrarVentana();
}
private void initialize() {this.setSize(723, 338);this.setResizable(false);this.setModal(true);this.setTitle("Búsqueda de Cliente");this.setContentPane(getJContentPane());
}
private JPanel getJContentPane() {if (jContentPane == null) {
jContentPane = new JPanel();jContentPane.setLayout(null);jContentPane.setBackground(java.awt.SystemColor.scrollbar);jContentPane.add(getJPanel(), null);jContentPane.add(getJtxt_cliente(), null);jContentPane.add(getScrollPane(), null);
}return jContentPane;
José Jesús Balmaceda – Tec. Computación e Informática Página 25
![Page 26: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/26.jpg)
}
private JPanel getJPanel() {if (jPanel == null) {
lbl_cliente = new JLabel();lbl_cliente.setBounds(new java.awt.Rectangle(23,12,180,25));lbl_cliente.setText("Ingrese nombre del cliente : ");
lbl_cliente.setForeground(java.awt.SystemColor.controlLtHighlight);jPanel = new JPanel();jPanel.setLayout(null);jPanel.setBackground(java.awt.SystemColor.scrollbar);
jPanel.setBorder(BorderFactory.createLineBorder(SystemColor.controlShadow, 1));
jPanel.setBounds(new java.awt.Rectangle(120,33,469,44));jPanel.add(getJtxt_nomcliente(), null);jPanel.add(lbl_cliente, null);
}return jPanel;
}
private JTextField getJtxt_nomcliente() {if (jtxt_nomcliente == null) {
jtxt_nomcliente = new JTextField();jtxt_nomcliente.setBounds(new
java.awt.Rectangle(203,15,246,21));jtxt_nomcliente.setForeground(new
java.awt.Color(102,102,102));jtxt_nomcliente.setText("");
jtxt_nomcliente.setBackground(java.awt.SystemColor.controlHighlight);jtxt_nomcliente.addCaretListener(new
javax.swing.event.CaretListener() {public void caretUpdate(javax.swing.event.CaretEvent e) {
consultasql();}
});}return jtxt_nomcliente;
}
private JTextField getJtxt_cliente() {if (jtxt_cliente == null) {
jtxt_cliente = new JTextField();jtxt_cliente.setBounds(new java.awt.Rectangle(62,79,595,20));jtxt_cliente.setFont(new java.awt.Font("Dialog",
java.awt.Font.BOLD, 12));
jtxt_cliente.setForeground(java.awt.SystemColor.controlLtHighlight);jtxt_cliente.setText("Cliente");jtxt_cliente.setEditable(false);jtxt_cliente.setBackground(java.awt.Color.gray);
}
José Jesús Balmaceda – Tec. Computación e Informática Página 26
![Page 27: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/27.jpg)
return jtxt_cliente;}
private JScrollPane getScrollPane() {if (ScrollPane == null) {
ScrollPane = new JScrollPane();ScrollPane.setBounds(new java.awt.Rectangle(62,98,595,164));
ScrollPane.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
ScrollPane.setViewportView(getTablaCliente());
ScrollPane.setVerticalScrollBarPolicy(javax.swing.JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
}return ScrollPane;
}
private JTable getTablaCliente() {if (tablaCliente == null) {
tablaCliente = new JTable();tablaCliente.setForeground(new java.awt.Color(102,102,102));tablaCliente.setShowGrid(true);
tablaCliente.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
tablaCliente.setBackground(java.awt.SystemColor.controlHighlight);}return tablaCliente;
}}
package moduloCliente;
José Jesús Balmaceda – Tec. Computación e Informática Página 27
![Page 28: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/28.jpg)
import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.table.DefaultTableModel;
import moduloData.Classconexion;
public class AgregarProductos extends JDialog {//*********************************************************************************//*********************************************************************************//*********************************************************************************//*********************************************************************************//*********************************************************************************//*********************************************************************************public String Valores;public void setValores(String xValores){
Valores=xValores;}public String getValores(){
return Valores;}//*********************************************************************************public JFrame Frame;public void setFrame(JFrame xFrame){
Frame=xFrame;}public JFrame getFrame(){
return Frame;}
//*********************************************************************************//*********************************************************************************//*********************************************************************************//*********************************************************************************//*********************************************************************************//*********************************************************************************private static final long serialVersionUID = 1L;private JPanel jContentPane = null;private JScrollPane ScrollPane = null;public JTable tabla = null;//********************************************DefaultTableModel modelo;//contenido cuando realizemos la consulta a la base
José Jesús Balmaceda – Tec. Computación e Informática Página 28
![Page 29: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/29.jpg)
de datosDefaultTableModel modelovacio;//contenido vacio cuando cargue el grid, o
cuando no encuentre el dato a buscar.//********************************************//instancio una variable "objconexion", para usar precisamente la conexion.Classconexion objconexion = new Classconexion();private JPanel Panelbusqueda = null;public JTextField jtxt_nombreprod = null;private JLabel lbl_nombre = null;private JTextField jTextField = null;public void consultatabla(){
try{//llamamos a la conexionobjconexion.conexion();//********************************************//creamos una instancia para nuestra conexionobjconexion.st=objconexion.cn.createStatement();//realizamos una consulta a la tabla//filtrando la busqueda con las iniciales//del producto que escribamos en el JTextBoxobjconexion.rs=objconexion.st.executeQuery("select
item,nombre,descripcion,precioventa,stock from tbproductos where nombre LIKE '"+this.jtxt_nombreprod.getText()+"%"+"'");
//para recorrer los registrosobjconexion.rs.next();//********************************************//establecemos las cabeceras de las columnas de nuestro gridString columnas[] =
{"Item","Nombre","Descripción","Precio","Stock"};modelo=new DefaultTableModel(columnas,0);//********************************************//instanciamos un Object->ARRAY de nombre "fila",//que cargará los registros correspondientes para//nuestras columnas que tenemos en la grilla,//en este caso 5Object fila[]=new Object[5];//preguntamos://si se ejecuta la consulta a la tabla correctamente y//el JTextBox No está vacía, entonces...if(objconexion.rs.getRow()>0 &&
jtxt_nombreprod.getText().intern()!=""){
//... se cargará nuestra grilla con los registros de nuestra tabla.
fila[0]=objconexion.rs.getString("item");fila[1]=objconexion.rs.getString("nombre");fila[2]=objconexion.rs.getString("descripcion");fila[3]=objconexion.rs.getString("precioventa");fila[4]=objconexion.rs.getString("stock");modelo.addRow(fila);tabla.setModel(modelo);
}else{
//sino se ejecuta la consulta correctamente, entonces la
José Jesús Balmaceda – Tec. Computación e Informática Página 29
![Page 30: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/30.jpg)
grilla se queda//vacia, a través de un nuevo contenido denominado
"modelovacio".String col_vacias[] =
{"Item","Nombre","Descripción","Precio","Stock"};modelovacio=new DefaultTableModel(col_vacias,0);tabla.setModel(modelovacio);
} }catch(Exception ex){
System.out.print(ex.getMessage());}
}
//****************************************************************************************************
//****************************************************************************************************
//****************************************************************************************************
//creamos un procedimiento denominado "temporal", para que cargue la grilla vacía.
public void temporal(){//*****************************************************************************
String col_vacias[] = {"Item","Nombre","Descripción","Precio","Stock"};//*************************
modelovacio=new DefaultTableModel(col_vacias,0);//************************************************
tabla.setModel(modelovacio);//********************************************************************
}//***************************************************************************************************
//****************************************************************************************************
//****************************************************************************************************
public AgregarProductos() {super();initialize();centrarVentana();//****************************************//****************************************temporal();//llamamos al procedimiento "temporal" en nuestro
constructor.//****************************************//****************************************
}
José Jesús Balmaceda – Tec. Computación e Informática Página 30
![Page 31: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/31.jpg)
public void centrarVentana(){
this.setLocationRelativeTo(null);}
private void initialize() {this.setSize(723, 338);
this.setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE);this.setModal(true);this.setResizable(false);this.setTitle("Agregar productos");this.setContentPane(getJContentPane());
}
private JPanel getJContentPane() {if (jContentPane == null) {
jContentPane = new JPanel();jContentPane.setLayout(null);jContentPane.setBackground(java.awt.SystemColor.scrollbar);jContentPane.add(getScrollPane(), null);jContentPane.add(getPanelbusqueda(), null);jContentPane.add(getJTextField(), null);
}return jContentPane;
}
private JScrollPane getScrollPane() {if (ScrollPane == null) {
ScrollPane = new JScrollPane();ScrollPane.setBounds(new java.awt.Rectangle(62,98,595,164));ScrollPane.setViewportView(getTabla());
}return ScrollPane;
}
private JTable getTabla() {if (tabla == null) {
tabla = new JTable();tabla.setForeground(new java.awt.Color(102,102,102));tabla.setBackground(java.awt.SystemColor.controlHighlight);
}return tabla;
}
private JPanel getPanelbusqueda() {if (Panelbusqueda == null) {
lbl_nombre = new JLabel();lbl_nombre.setBounds(new java.awt.Rectangle(23,12,180,25));
lbl_nombre.setForeground(java.awt.SystemColor.controlLtHighlight);
José Jesús Balmaceda – Tec. Computación e Informática Página 31
![Page 32: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/32.jpg)
lbl_nombre.setText("Ingrese nombre del producto : ");Panelbusqueda = new JPanel();Panelbusqueda.setLayout(null);Panelbusqueda.setBounds(new
java.awt.Rectangle(120,33,469,44));
Panelbusqueda.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.controlShadow,1));
Panelbusqueda.setBackground(java.awt.SystemColor.scrollbar);Panelbusqueda.add(getJtxt_nombreprod(), null);Panelbusqueda.add(lbl_nombre, null);
}return Panelbusqueda;
}
private JTextField getJtxt_nombreprod() {if (jtxt_nombreprod == null) {
jtxt_nombreprod = new JTextField();jtxt_nombreprod.setBounds(new
java.awt.Rectangle(203,15,246,21));jtxt_nombreprod.setForeground(new
java.awt.Color(102,102,102));jtxt_nombreprod.setText("");
jtxt_nombreprod.setBackground(java.awt.SystemColor.controlHighlight);jtxt_nombreprod.addCaretListener(new
javax.swing.event.CaretListener() {//éste es un evento como Text_Change de .Netpublic void caretUpdate(javax.swing.event.CaretEvent e) {
consultatabla();}
});}return jtxt_nombreprod;
}/** * This method initializes jTextField * * @return javax.swing.JTextField */private JTextField getJTextField() {
if (jTextField == null) {jTextField = new JTextField();jTextField.setFont(new java.awt.Font("Dialog",
java.awt.Font.BOLD, 12));jTextField.setText("Producto");jTextField.setEditable(false);
jTextField.setForeground(java.awt.SystemColor.controlLtHighlight);jTextField.setLocation(new java.awt.Point(62,79));jTextField.setSize(new java.awt.Dimension(595,20));jTextField.setBackground(java.awt.Color.gray);
}return jTextField;
José Jesús Balmaceda – Tec. Computación e Informática Página 32
![Page 33: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/33.jpg)
}} // @jve:decl-index=0:visual-constraint="10,10"
package moduloData;import java.sql.*;//importo la clase .sql, para trabajar con base de datos.public class Classconexion {
//declarando variables publicas para poder usarlas//en nuestro formulario de factura.public Connection cn;//conexionpublic ResultSet rs;//tipo recordsetpublic Statement st;//para establecer consultaspublic CallableStatement cstmt;public PreparedStatement cmd;
public void conexion(){
try{//llamo al driver para conectar java con MySQLClass.forName("com.mysql.jdbc.Driver");//establesco la conexion con sus respecticos parametros
cn=DriverManager.getConnection("jdbc:mysql://localhost/bdfacturacion","root","mysql");
}catch(Exception ex){
//en caso de erroresSystem.out.print("Error:"+ex.getMessage());
}}
}
CREATE DATABASE bdfacturacion;
USE bdfacturacion;
CREATE TABLE tbclientes ( item varchar(20) NOT NULL, nombres varchar(200) NOT NULL, direccion varchar(100) NOT NULL, telefono char(10) NOT NULL, ruc varchar(15) NOT NULL, email varchar(50) default NULL, PRIMARY KEY (item));
CREATE TABLE tbfactura ( numfac varchar(20) NOT NULL, subtotal decimal(8,2) NOT NULL, igv decimal(8,2) NOT NULL,
José Jesús Balmaceda – Tec. Computación e Informática Página 33
![Page 34: Factura en Java Con MySQL_docx](https://reader034.vdocuments.us/reader034/viewer/2022050808/5527c289550346c8358b48ce/html5/thumbnails/34.jpg)
total decimal(8,2) NOT NULL, fecha datetime NOT NULL, PRIMARY KEY (numfac));
CREATE TABLE tbdetfactura ( numfac varchar(20) NOT NULL, itemprod varchar(20) NOT NULL, precioprod decimal(8,2) NOT NULL, cantprod int(11) NOT NULL);
CREATE TABLE tbproductos ( item varchar(20) NOT NULL, nombre char(50) NOT NULL, descripcion char(50) NOT NULL, preciocompra decimal(8,2) NOT NULL, precioventa decimal(8,2) NOT NULL, stock int(11) NOT NULL, stockminimo int(11) NOT NULL, PRIMARY KEY (item));
INSERT INTO tbproductos (item, nombre, descripcion, preciocompra, precioventa, stock, stockminimo) VALUES
('PR00001','Inka Kola','Gaseosa botella plast. 3 lt','3.8','4.3',500,5);INSERT INTO tbproductos (item, nombre, descripcion, preciocompra, precioventa, stock, stockminimo) VALUES
('PR00002','Sporade','Rehidratante 400 ml','1.2','1.5',400,5);INSERT INTO tbproductos (item, nombre, descripcion, preciocompra, precioventa, stock, stockminimo) VALUES
('PR00003','Maltin Power','Energizante de malta 280 ml','0.8','1',800,5);INSERT INTO tbproductos (item, nombre, descripcion, preciocompra, precioventa, stock, stockminimo) VALUES
('PR00004','San Luis','Agua mineral 500 ml','1','1.5',250,5);INSERT INTO tbproductos (item, nombre, descripcion, preciocompra, precioventa, stock, stockminimo) VALUES
('PR00005','Gatorade','Bebida Rehidrat. 400 ml','2','2.4',400,5);
delimiter//create procedure fecha(OUT parametro datetime)begindeclare variable datetime;set variable=now();set parametro=variable;select parametro;end;//
José Jesús Balmaceda – Tec. Computación e Informática Página 34