CURSO DE JAVA

PROGRAMAS A UTILIZAR
  1. Netbeans Es un IDE(Integrated Development Environment->Entorno de Desarrollo Integrado), es un programa o entorno el cual nos permite crear o desarrollar aplicaciones(Web, Escritorio, Móviles, etc).
  2. Jdk Java Development Kit(Kit de Desarrollo de Java) son herramientas para poder crear aplicaciones en java.
    *JRE (Java Runtime Environment) -> Entorno de Ejecución de Java. Nos permite la ejecución de nuestras aplicaciones java
  3. Mysql (My Structured Query Language->Lenguaje de Consulta) es un gestor de base de datos, lo cual nos permite almacenar y administrar información.
CONCEPTOS BÁSICOS
* Java es un lenguaje de programacion orientado a objetos que nos permite crear aplicaciones tanto para web o escritorio.
¿QUE ES POO (Programacion Orientada a Objetos)?
*Es una PARADIGMA DE PROGRAMACION, es decir un modelo o un estilo de programación que nos da unas guías sobre cómo trabajar con él.
*Se dice que JAVA POO porque practicamente en la programacion todo es un OBJETO(toda cosa de nuestro al rededor). En java todo objeto se denomina CLASE y toda clase tiene solo dos cosas(ATRIBUTOS Y METODOS)
*ATRIBUTOS(son las varibles donde se almacenan las caracteristicas o propiedades de nuestra clase u objeto)
*METODOS(son las funciones o acciones que realizar nuestra clase u objeto)
CREAR NUEVO PROYECTO
SOUT - JOP - SCANNER
*Son clases que nos permiten ingresar o mostrar información en pantalla
                                                
                                                    /* SOUT */                            
                                                    System.out.println("Hola Mundo");
                                                    /* JOP */
                                                    JOptionPane.showInputDialog("ingrese su nombre");
                                                    JOptionPane.showMessageDialog(null, "Hola Mundo");
                                                    /* SCANNER */
                                                    Scanner co=new Scanner(System.in);
                                                    String mensaje=co.next();
                                                    //String mensaje=co.nextLine(); // para textos separados con espacio
                                                    System.out.println(mensaje);                            
                                                
                                            
VARIABLES
Las variables son un espacio en memoria y que pueden almacenar un valor.
TIPOS DE DATO
                                                
                                                    int a = 10; /* ENTEROS */
                                                    String b = "Isai"; /* CADENA */
                                                    Float(clase)
                                                    float c = 10.50; /* DECIMALES CORTOS */
                                                    Double(clase)
                                                    double d = 10.500000000; /* DECIMALES LARGOS */
                                                    char e = '*'; /* CARACTERES */
                                                    boolean f = true; /* VERDADERO O FALSO */
                                                
                                            
ARREGLOS
Los arreglos tambien es un tipo de dato, puede almacenar un conjunto de datos.
                                                
                                                    int numero[]=new int[10]
                                                    numero[0]=20
                                                    /* ASIGNANDO VALORES */
                                                    for (int i = 0; i < 10; i++) {
                                                        numero[i]=Integer.parseInt(JOptionPane.showInputDialog("Ingrese su
                                                        edad"));
                                                    }
                                                    /* IMPRIMIENDO VALORES */
                                                    for (int i = 0; i < 10; i++) {
                                                        System.out.println(numero[i]);
                                                    }
                                                    for (int items : numero) {
                                                        System.out.println(items);
                                                    }                            
                                                
                                            
COMENTARIOS
Los comentarios son lineas de codigos que no son interpratadas en la ejecución.
                                                                    
                                                // Comentarios de una sola linea
                                                /*
                                                Comentarios de varios bloques de linea
                                                */
                                            
                                        
CONDICIONALES
*Las condicionales son utilizadas para tomar decisiones en función de que se cumpla o no una determinada condición..
                                                                    
                                                if (condicion) {
                                                ...instrucciones...
                                                } else {
                                                ...instrucciones...
                                                }
                                            
                                        
ESTRUCTURAS DE CONTROL
Usar switch ayuda a simplificar el código y evita confusiones, ya que organiza en varias ramas el código que va a ser ejecutado.
                                                                    
                                                switch (sem) {
                                                   case 1: ...instruccion1...
                                                   break;
                                                   case 2: ...instruccion2...
                                                   break;
                                                   default: ...instruccion3...
                                                   break;
                                                }
                                            
                                        
BUCLES Y CICLOS
Los bucles o ciclos son secuencias de bloques de codigo que se ejecutarán repetidas veces hasta que la condicion deje de cumplirse.
                                                                    
                                                for (int i = 0; i <= 10; i++) {
                                                    ...instrucciones...
                                                }
                    
                                                for (int items : numero) {
                                                    ...instrucciones...
                                                }
                    
                                                while (condicion){
                                                    ...instrucciones...
                                                }
                    
                                                do{
                                                    ...instrucciones...
                                                }
                                                }while(condicion)
                                            
                                        
CASTING O CONVERSIONES DE TIPOS DE DATO
                                                                    
                                                /* STRING-INTEGER */                
                                                    Integer entero = Integer.valueOf(cadena);
                                                    int entero = Integer.parseInt(cadena);                        
                                                /* INTEGER-STRING */                
                                                    String cadena = Integer.toString(entero);
                                                    String cadena = String.valueOf(entero);                        
                                                /* CHAR-STRING */                
                                                    String cadena = Character.toString(char);                        
                                                /* STRING-CHAR */                
                                                    char caracter = cadena.charAt(0); //Solo primer caracter                        
                                                /* STRING-DOUBLE */                
                                                    double doble = Double.parseDouble(cadena);                        
                                                /* DOUBLE-STRING */                
                                                    String cadena = String.valueOf(doble);                        
                                                /* STRING-FLOAT */                
                                                    float flotante = Float.parseFloat(cadena);                        
                                                /* FLOAT-STRING */                
                                                    String cadena = Float.toString(flotante);                        
                                                /* STRING-BOOLEAN */                
                                                    Boolean boolean = Boolean.valueOf(cadena);
                                                    boolean boolean = Boolean.parseBoolean(cadena);                        
                                                /* BOOLEAN-STRING */                
                                                    String cadena = String.valueOf(b);
                                                    String cadena = Boolean.toString(b);

                                                /* DOUBLE-INT */                
                                                    double precio = 10.5;
                                                    int a = (int) precio;
                                                /* FLOAT-INT */
                                                    float precio = 10.5f;
                                                    int a = (int) precio;
                                            
                                        
CLASES
*Las clases en java son como una plantilla. Existen dos tipos de clase(CLASE NORMAL Y CLASE PRINCIPAL)
*Las clases solo contienen atributos y metodos. Solo las clases principales son las que se pueden ejecutar, mas no lo demás
*Para utilizar una clase normal en una clase principal debe hacer la importacion.
INSTANCIAS
*Las instancias son llamadas hacia un archivo(CLASE) para hacer uso de ello.
*Para instanciar una clase, primero se debe importar.
                                                                    
                                                import cursosjava.Persona;
                                                Persona pe=new Persona();
                                            
                                        
MÉTODOS
*Un método en Java es un conjunto de instrucciones definidas dentro de una clase, que realizan una determinada tarea y a las que podemos invocar mediante un nombre
MÉTODOS SIN PARAMETROS
                                                                    
                                                public int suma(){
                                                    return a+b;
                                                }
                                                pe.suma();
                                            
                                        
MÉTODOS CON PARAMETROS
                                                                    
                                                public int suma(int a, int b){
                                                    return a+b;
                                                }
                                                pe.suma(10,50);
TRY CATCH
*Los Try Catch se utilizan para poder prevenir los errores.
*Para mayoria de los casos el try catch se utiliza:
  1. Para recibir información de formularios
  2. Para realizaciones acciones hacia la BD
FRAMES
*Los frames es un area o marco de trabajo de java, que nos permite diseñar nuestra interfaz
*Los frames esta compuesto por dos áreas(CODIGO-DISEÑO). En el área de código es la parte donde se programa la LÓGICA de nuestra aplicación. El area de diseño es la parte donde se muestra la interfaz de nuestro aplicación
getText() y setText()
*getText() nos permite obtener el valor de nuestro input.
*setText() nos permite colocar el valor a un componente(LABEL-BUTTON-INPUT-ETC).
                                    
                                        String codigo = txtcodigo.getText();
                                        lblres.setText("Hola Mundo");
                                    
                                
COMPONENTES FRAMES
                                    
                                        /* COMBO BOX */
                                        -> Cambiar la propiedad MODEL
                                        cbnum.getSelectedIndex()    //recibe la posicion
                                        cbnum.getSelectedItem()     //recibe el valor
                                        /* CHECK BOX */
                                        if (mujer.isSelected()) {
                                            txtnombre.setText(mujer.getText());
                                        }
                                        /* RADIO BUTTON */
                                        -> Arrastrar el componente BUTTON GROUP
                                        -> Cambiar la propiedad BUTTON GROUP
                                        if (f.isSelected()) {
                                            txtnombre.setText(f.getText());
                                        }
                                        /* POPUP MENU */
                                        -> Arrastrar el componente popup menu
                                        -> Ir a las propiedades del componente que contiene el popup menu
                                        -> Cambiar la propiedad componentPopupMenu
                                        -> Ir a navigator->other components->JPopupMenu->Agregar->menu-item
                                        -> Cambiar la propiedad text del menu-item
                    
                                        int filas=tabla1.getSelectedRow();
                                        if (filas>=0) {
                                            txtcod.setText(tabla1.getValueAt(filas, 0).toString());
                                            txtnom.setText(tabla1.getValueAt(filas, 1).toString());
                                            txtcod.setEditable(false);
                                            btneliminar.setEnabled(false);
                                            btnregistrar.setEnabled(false);
                                        }
                                        /* J-CALENDAR */
                                        Descargar el .JAR
                                        -> Click derecho en la paleta de componentes
                                        -> Palette Manager
                                        -> Add from Jar
                                        -> Selecciona el J-Calendar
                                        -> Selecciona todos los componentes
                                        -> Selecciona AWT
                                        -> Finalizar
                    
                                        -> Arrastrar el componente JDateChooser
                                        
                                        int anio = calendario.getCalendar().get(Calendar.YEAR);
                                        int mes = calendario.getCalendar().get(Calendar.MONTH)+1;
                                        int dia = calendario.getCalendar().get(Calendar.DAY_OF_MONTH);                        
                                        fecha.setText(dia + "/" + mes + "/" + anio);


                                        /* EJECUTAR EN PANTALLA COMPLETA */
                                        public Index() {
                                            initComponents();
                                            this.setExtendedState(MAXIMIZED_BOTH);
                                        }


                                        /* PONER COLOR EN JFRAME Y JPANEL */
                                        public Index() {                                                                                
                                            //Color JFrame
                                            this.getContentPane().setBackground(new Color(0, 189, 255));
                                    
                                            //Color JPanel
                                            jPanel1.setBackground(new Color(100, 55, 200));
                                        }


                                        /* HORA ACTUAL */
                                        LocalDateTime locaDate = LocalDateTime.now();
                                        int hours = locaDate.getHour();
                                        int minutes = locaDate.getMinute();
                                        int seconds = locaDate.getSecond();      
                                        txthora.setText(hours + ":" + minutes + ":" + seconds);


                                        /* PONER PLACEHOLDER EN JTEXTFIELD */
                                        Descargar el archivo
                                        Segunda opcion de descarga
                                        
  1. Copia el archivo "TextPrompt.java" dentro de formularios
  2. Reinicia netbeans
  3. OJO:si en caso no se puede instanciar entrar y copiar todo el codigo en una clase nueva o pegar el archivo en otra carpeta fuera de formularios
public Login() { TextPrompt TextoPlaceholder=new TextPrompt("Usuario", txtusuario); } /* COMO CENTRAR UN JFRAME */ public Login() { setLocationRelativeTo(null); } /* COMO BLOQUEAR MAXIMIZAR Y MINIMIZAR EN JFRAME */ public Login() { this.setResizable(false); } /* COMO PONER TITULO EN JFRAME */ public Login() { this.setTitle("Inicio de sesion"); } /* EVENTO AL PRESIONAR ENTER */ //ejecutar un boton al presionar enter en input if (evt.getKeyCode() == KeyEvent.VK_ENTER) { btnentrar.doClick(); } /* CERRAR Y ABRIR UN JFRAME FORM */ this.dispose();//cerramos el frame actual Inicio ini=new Inicio();//instanciamos el nuevo frame ini.setVisible(true);//abrimos el frame nuevo /* COMO SABER SI UN ARRAYLIST ESTA VACIO O NO */ tabla.isEmpty() /* EJECUTAR JFRAME EN PANTALLA COMPLETA */ public Login() { this.setExtendedState(MAXIMIZED_BOTH); } /* PASOS PARA COMPARTIR DATOS DE UN FRAME A OTRO */
  1. Click derecho en el componente
  2. optimizar codigo
  3. poner acceso PUBLIC y STATIC
//EJEMPLO Inicio ini = new Inicio();//instanciamos el nuevo frame ini.txtnombre.setText("valor compartido"); //este valor viene de un frame diferente /* CURSOR POINTER EN JLABEL */ lblventas.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); /* ENCRIPTAR MD5 */ public static String md5(String clear) throws Exception { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] b = md.digest(clear.getBytes()); int size = b.length; StringBuffer h = new StringBuffer(size); //algoritmo y arreglo md5 for (int i = 0; i < size; i++) { int u = b[i] & 255; if (u < 16) { h.append("0" + Integer.toHexString(u)); } else { h.append(Integer.toHexString(u)); } } return h.toString(); } //COMO LLAMAR AL METODO String password = ""; try { password = md5(txtpassword.getText()); } catch (Exception e) { } /* NUEVO AGREGADO DESDE LAPTOP */ /* AGREGAR UN JBUTTON */ JButton btn1=new JButton("AGREGAR"); /* CAMBIAR COLOR DE JBUTTON */ btn1.setBackground(Color.green); /* CAMBIAR COLOR DE ENCABEZADO DE UN JTABLE */ UIManager.put("nimbusBlueGrey", new Color(32,136,203)); tabla1.setModel(modelo); /* CAMBIAR ALTO DE ENCABEZADO DE UN JTABLE */ tabla1.getTableHeader().setPreferredSize(new java.awt.Dimension(0,30)); /* COMO AGREGAR ELEMENTOS(JLABEL,JBUTTON) A UNA JTABLE */
  1. Primero crear una clase para el renderizado "Render.java"
//EN LA CLASE "Render.java" public class RenderTablaBuscarProd extends DefaultTableCellRenderer{ @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (value instanceof JButton) { JButton btn=(JButton)value; return btn; } return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); //To change body of generated methods, choose Tools | Templates. } } //METODO PARA MOSTRAR LA TABLA public void mostrarProd() { Conexion co = new Conexion(); ArrayList bu = co.buscarProducto(txtbuscarProd.getText()); DefaultTableModel tabla = new DefaultTableModel() { // esto es para bloquear la edicion del boton public boolean isCellEditable(int row, int column) { return false; } /*otra forma de bloquear la columna del boton public boolean isCellEditable(int row, int column) { if (column == 5) { return false; } return super.isCellEditable(row, column); }*/ }; //creando botones JButton btn1 = new JButton("AGREGAR"); btn1.setName("btnagregar"); tabla.addColumn("NOMBRE"); tabla.addColumn("DESCRIPCION"); tabla.addColumn("CANTIDAD"); tabla.addColumn("PRECIO"); tabla.addColumn(" "); tabla1.setModel(tabla); for (BuscarProductoGetSet buscar : bu) { tabla.addRow(new Object[]{buscar.getNombre(), buscar.getDescripcion(), buscar.getStock(), buscar.getPrecio(), btn1}); } tabla1.setDefaultRenderer(Object.class, new RenderTablaBuscarProd()); tabla1.setModel(tabla); //alto de las filas de las tablas tabla1.setRowHeight(30); TableColumn columna = new TableColumn(); columna.setPreferredWidth(70); } //PARA EL EVENTO int column = tabla1.getColumnModel().getColumnIndexAtX(evt.getX()); int row = evt.getY() / tabla1.getRowHeight(); if (row < tabla1.getRowCount() && row >= 0 && column < tabla1.getColumnCount() && column >= 0) { Object value = tabla1.getValueAt(row, column); if (value instanceof JButton) { ((JButton) value).doClick(); JButton boton = (JButton) value; if (boton.getName().equals("btnagregar")) { System.out.println("Click en el boton agregar"); //EVENTOS MODIFICAR } } } /* OBTENER POSICION DE FILA Y COLUMNA EN UN JTABLE */ //la fila y columna empieza de CERO int col = tabla2.getColumnModel().getColumnIndexAtX(evt.getX()); int fil = evt.getY() / tabla1.getRowHeight(); /* COMO TOMAR EL MISMO MODELO DE NUESTRO JTABLE */ DefaultTableModel modelo = (DefaultTableModel) tabla2.getModel(); /* AUTOFOCUS EN JTEXTFIELD */ txtbuscarProd.requestFocus(); /* FECHA ACTUAL EN JAVA */ DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); String fecha=dtf.format(LocalDateTime.now()); /* SUMAR PRECIO DE FILAS DE JTABLE */ double fi = 0; double total = 0; for (int i = 0; i < tabla2.getRowCount(); i++) { fi = Double.parseDouble(tabla2.getValueAt(i, 5).toString()); total = total + fi; } txtmontoTotal.setText(String.valueOf(total)); totalPagar(); /* ABRIR JTABPANEL CON UN JBUTTON */ JTabbedPanel.setSelectedIndex(0); /* COLOCAR VALORES DE UN TABLA AL HACER CLICK EN LA FILA */ int fila = tablaProducto.rowAtPoint(evt.getPoint()); txtidProd.setText(tablaProducto.getValueAt(fila, 0).toString()); txtnomProd.setText(tablaProducto.getValueAt(fila, 1).toString()); /* AGREGAR IMAGEN A UN JBUTTON */ JButton btn1 = new JButton(""); btn1.setIcon(new ImageIcon("src/img/plus.png")); /* DESACTIVAR O DESHABILITAR UN BOTON */ boton.setEnabled(false); /* DESACTIVAR O DESHABILITAR UNA PESTAÑA DE UN JTABBEDPANE */ panel.setEnabledAt(5, false); /* COLOCAR FECHA ACTUAL EN JDATECHOOSER */ Calendar date = new GregorianCalendar(); Jfecha1.setCalendar(date); Jfecha2.setCalendar(date); /* COMO EJECUTAR CON X-LINT */ 1. Ir derecho en el proyecto->propiedades->compiling 2. En el apartado "Additional Compiler Options" colocar -> "-Xlint:unchecked" //METODO 1 2. En el apartado "Additional Compiler Options" colocar -> "-Xlint:deprecation -Xlint:unchecked" //METODO 2 2. Listo
CONEXIÓN BD
Para conectar nuestra aplicacion a una Base de datos se debe tener en cuenta lo siguiente.
  1. Tener los drivers
Agregar los drivers desde:
  1. Click derecho en Libraries
  2. Add Library
  3. Elegir el driver adecuado para cada GESTOR DE BD que estemos utilizando
  4. Nos dirigimos a Services.
  5. Click derecho en databases
  6. New Connection
  7. Configurar los pasos. OJO: tenga cuidado en configurar el NOMBRE, USUARIO, CLAVE de acceso a nuestra BD
  8. Test Connection
  9. Click derecho y CONECTAR en MYSQL SERVER at localhost:
  1. Seleccionar tu BD
  2. Click derecho conectar
  3. Se te creará un archivo que debes configurarlo
  1. Click derecho propiedades
  2. Ahi encontrarás información necesaria
  1. Crear una clase para la CONEXIÓN
  2. Importar los siguientes clases
  3. import java.sql.*;
CONEXION
                                                                    
                                                package formularios;
                                                import java.sql.*;
                                                public class Conexion {
                                                    Connection cn;
                                                    PreparedStatement ps;
                                                    CallableStatement cst;
                                                    ResultSet rs;
                    
                                                    public Conexion() {
                                                        try {
                                                            Class.forName("com.mysql.jdbc.Driver");
                                                            cn = DriverManager.getConnection("jdbc:mysql://localhost:3309/practica6", "root", "root");
                                                            System.out.println("CONECTADO BD");
                                                        } catch (Exception e) {
                                                            System.out.println("ERROR CONEXION BD");
                                                        }
                                                    }
                                                }
                                            
                                        
METODOS Y CONSULTAS SQL
*Un método es similar a una función son bloques de código que se pueden ejecutar y además pueden ser reutilizados.
*En java veremos 4 clases muy importantes que nos brinda a la hora de trabajar con una BASE DE DATOS.
                                                                        
                                                    Connection cn /* NOS PERMITE REALIZAR LA CONEXION */
                                                    PreparedStatement ps /* NOS PERMITE REALIZAR CONSULTAS A LA BD */
                                                    CallableStatement cst /* NOS PERMITE LLAMAR UN PROCEDIMIENTO ALMACENADO DE NUESTRA BD */
                                                    ResultSet rs /* NOS PERMITE ALMACENAR DATOS QUE SON OBTENIDOS DE LA BD */
                                                
                                
METODOS CON PreparedStatement
                                                                    
                                                public int registrarProducto(String nombre, double pre) {
                                                    int res = 0;
                                                    try {
                                                        ps = cn.prepareStatement("insert into producto(nombre,precio)values(?,?)");
                                                        ps.setString(1, nombre);                                
                                                        ps.setDouble(2, pre);
                                                        res = ps.executeUpdate();
                                                        System.out.println("Registrado correctamente");
                                                    } catch (Exception e) {
                                                        System.out.println("error al registrar " + e);
                                                    }
                                                    return res;
                                                }
                                            
                                        
METODOS CON CallableStatement
                                                                    
                                                public int registrarProducto(String nombre, double pre) {
                                                    int res = 0;
                                                    try {
                                                        cst=cn.prepareCall("{call reproducto(?,?)}");
                                                        cst.setString(1, nombre);
                                                        cst.setDouble(2, pre);
                                                        res=cst.executeUpdate();
                                                    } catch (Exception e) {
                                                        System.out.println("error al registrar " + e);
                                                    }
                                                    return res;
                                                }
                                            
                                        
ResultSet
                                                                    
                                                public ArrayList<MetodoGetSet> coautor(){
                                                    ArrayList<MetodoGetSet> res=new ArrayList<MetodoGetSet>();
                                                        try {
                                                            cst=cn.prepareCall("{call coautor()}");
                                                            rs=cst.executeQuery();
                                                            while (rs.next()) {                
                                                            MetodoGetSet me=new MetodoGetSet();
                                                            me.setCod_autor(rs.getString(1));
                                                            me.setNom_autor(rs.getString(2));
                                                            me.setNacion_autor(rs.getString(3));
                                                            res.add(me);
                                                            }
                                                        } catch (Exception e) {
                                                        }
                                                    return res;
                                                }
                                            
                                        
LISTAR DATOS EN TABLA
                                                                    
                                                public class Autor extends javax.swing.JFrame {    
                                                    public Autor() {
                                                        initComponents();
                                                        mostrartabla();
                                                    }
                                                    public void mostrartabla(){
                                                        Registro re=new Registro();
                                                        DefaultTableModel modelo=new DefaultTableModel();
                                                        modelo.addColumn("CODIGO");
                                                        modelo.addColumn("NOMBRE");
                                                        modelo.addColumn("NACIONALIDAD");
                                                        tabla1.setModel(modelo);
                                                        
                                                        ArrayList<MetodoGetSet> tabla=re.coautor();
                                                        String datos[]=new String[3];
                                                        for (MetodoGetSet m : tabla) {
                                                            datos[0]=m.getCod_autor();
                                                            datos[1]=m.getNom_autor();
                                                            datos[2]=m.getNacion_autor();
                                                            modelo.addRow(datos);
                                                        }
                                                        tabla1.setModel(modelo);                              
                                                    }
                                                }   
                                            
                                        
REPORTES CON JASPER-REPORT
  1. Descargar las librerias (IReport)
  2. Agregar las librerias a Netbeans
    • Click tools->plugins->downloader->add plugins
    • Crear una carpeta en SRC llamado "REPORTES"
    • Dentro de la carpeta crear una clase de tipo Report
    • Nuevo->otros->Report->Empty report
  3. Conectar Mysql con IReport
    • Al instalar este plugin aparece una ventana principal de IReport
    • Paso1: Seleccionar JDBC connection
    • Paso2: Seguie con este paso
  4. Paso siguiente
    • Click en el buscador de netbeans
    • Buscar "report inspector"
  5. Descargar las librerias (otros)
    • Click derecho en library->agregar archivo JAR
    • Seleccionar todas los .JAR
  6. CRER UNA NUEVA CONEXION CON MYSQL
                                            
                                                public Connection getConexion() {
                                                    try {
                                                        Class.forName("com.mysql.jdbc.Driver");
                                                        cn = DriverManager.getConnection("jdbc:mysql://localhost:3309/sistema_venta_java",
                                                        "root", "root");
                                                        System.out.println("Base de datos conectada");
                                                    } catch (Exception e) {
                                                        System.out.println("ERROR AL CONECTAR BD");
                                                    }
                                                    return cn;
                                                }
                                            
                                        
  7. METODO PARA IMPRIMIR
                                            
                                                try {
                                                    Conexion co = new Conexion();
                                                    Connection cnn = co.getConexion();
                                                    JasperReport reporte = null;
                                                    String path = "src\\reportes\\Prueba.jasper";
                                        
                                                    reporte = (JasperReport) JRLoader.loadObject(getClass().getResource("/reportes/Prueba.jasper"));
                                                    JasperPrint jprint = JasperFillManager.fillReport(reporte, null, cnn);
                                                    JasperViewer view = new JasperViewer(jprint, false);
                                                    view.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
                                                    view.setVisible(true);
                                                } catch (JRException ex) {
                                                    Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex);
                                                }
                                            
                                        
  8. METODO PARA IMPRIMIR CON PARAMETROS()
                                            
                                                try {
                                                    Conexion co = new Conexion();
                                                    Connection cnn = co.getConexion();
                                                    JasperReport reporte = null;
                                                    String path = "src\\reportes\\Prueba.jasper";
                                        
                                                    //PARAMETROS
                                                    Map<String, Object> parametro = new HashMap<String, Object>();
                                                    parametro.put("id_producto", 16);
                                        
                                                    reporte = (JasperReport) JRLoader.loadObject(getClass().getResource("/reportes/Prueba.jasper"));
                                                    JasperPrint jprint = JasperFillManager.fillReport(reporte, parametro, cnn);
                                                    JasperViewer view = new JasperViewer(jprint, false);
                                                    view.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
                                                    view.setVisible(true);
                                                } catch (JRException ex) {
                                                    Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex);
                                                }
                                            
                                        
CREAR INSTALADOR DE PROYECTO JAVA
  1. Programas a utilizar
CONCEPTO
A diferencia de java-escritorio, Java Web es un lenguaje que nos permite crear aplicaciones que se ejecutan en la WEB
SINTAXIS
                                                            
                                        <%
                                        ..............
                                        %>
                                    
                                
IMPORT
                                                            
                                        <%@
                                        page import="controlador.Datos_empresa"
                                        %>
                                    
                                
USE-BEANS
                                                            
                                        <jsp:useBean id="fi" scope="page" class="controlador.Filtro" />
                                    
                                
IMPRIMIR EN PANTALLA
                                                            
                                        <%= "Hola mundo" %>
                                        <%= "<h1>Hola mundo</h1>" %>
                                    
                                
REQUEST
                                                            
                                        <%
                                        String usuario = request.getParameter("txtusuario");
                                        Part foto = request.getPart("txtfoto"); /* PARA RECIBIR ARCHIVOS */
                                        %>
                                    
                                
VALIDACIONES
                                                            
                                        <%
                                        if (usuario != null && clave != null) {
                                        ..............
                                        }
                                        %>
                                    
                                
TRY CATCH
*Los Try Catch se utilizan para poder prevenir los errores.
*Para mayoria de los casos el try catch se utiliza:
  1. Para recibir información de formularios
  2. Para realizaciones acciones hacia la BD
                                                            
                                        <%
                                        try {
                                            String usuario = request.getParameter("txtusuario");
                                            Part foto = request.getPart("txtfoto"); /* PARA RECIBIR ARCHIVOS */
                                        } catch (Exception e) {
                                        }
                                        %>
                                    
                                
JSP
*JSP(JavaServer Pages o Páginas de Servidor Java). Es una tecnología que ayuda a los desarrolladores de software a crear páginas web dinámicas basadas en HTML y XML, entre otros tipos de documentos.
*JSP es similar a PHP( Dentro de un JSP se puede incluir otros elementos como HTML, CSS y JAVASCRIPT).
*Para desplegar y correr JavaServer Pages, se requiere un servidor web compatible con contenedores servlet como Glassfish, Apache Tomcat o Jetty.
JAVA BEANS
*Los JavaBeans es una clase de java que se va utilizar como filtro(para evitar introducir errores a la BD).
CONEXIÓN BD
                                                        
                                    <!-- primero agrega las dependencias de MySQL en "Project files/pom.xml" -->
                                    <dependencies>
                                        <dependency>
                                            <groupId>mysql</groupId>
                                            <artifactId>mysql-connector-java</artifactId>
                                            <version>5.1.30</version> <!-- cuidado: primero verifica que version de Mysql usas en "Mysql Server Wizard" -->
                                        </dependency>
                                    </dependencies>
                                
                            
                                                        
                                    Connection cn;
                                    PreparedStatement ps;
                                    CallableStatement cst;
                                    ResultSet rs;

                                    try {
                                        Class.forName("com.mysql.jdbc.Driver");
                                        cn = DriverManager.getConnection("jdbc:mysql://localhost:3309/blog", "root", "root");
                                        System.out.println("Conectado BD");
                                    } catch (Exception e) {
                                        System.out.println("Error al a¿conectar BD");
                                    }
                                
                            
COOKIES
                                
                                    // Las cookies siempre se almacenan como cadenas
                                    Cookie cookies[] = request.getCookies();//obtenemos todas las cookies
                                    //agregamos un nuevo cookie
                                    Cookie nuevoCookie = new Cookie("usuarioRecurrente", "si");
                                    nuevoCookie.setMaxAge(10);// tiempo de cookie (10 seg)
                                    response.addCookie(nuevoCookie);


                                    //EJEMPLO: verificar si el usuario que ingresa a la pag. es Nuevo o Antiguo
                                    boolean nuevoUsuario = true;
                                    Cookie cookies[] = request.getCookies();//obtenemos todas las cookies

                                    //recorremos todas las cookies
                                    if (cookies != null) {
                                        for (Cookie cookie : cookies) {
                                            if (cookie.getName().equals("usuarioRecurrente") && cookie.getValue().equals("si")) {
                                                nuevoUsuario = false;
                                                break;
                                            }
                                        }
                                    }

                                    String mensaje = null;
                                    if (nuevoUsuario) {
                                        //agregamos un nuevo cookie
                                        Cookie nuevoCookie = new Cookie("usuarioRecurrente", "si");
                                        response.addCookie(nuevoCookie);
                                        mensaje = "USUARIO NUEVO";
                                    } else {
                                        mensaje = "USUARIO ANTIGUO";
                                    }

                                    System.out.println("mensaje = " + mensaje);
                                
                            
JAVA BEANS
Como usar un JavaBeans desde JSP
                                
                                    <body>
                                        <h1>Modificar valores</h1>
                                        <!-- Usar una clase java     carpeta/nomClase         alcance(page-request-session-aplication)-->
                                        <jsp:useBean id="rectangulo" class="beans.Rectangulo" scope="session" />
                                
                                        <%
                                            rectangulo.setBase(10);
                                            rectangulo.setAltura(5);
                                        %>
                                
                                        <li><%= rectangulo.getBase()%></li>
                                        <li><%= rectangulo.getAltura()%></li>
                                        <li><%= rectangulo.getArea()%></li>
                                    </body>