martes, 18 de octubre de 2016

067.- Códigos Importantes Para Programar Con Java en NetBeans

Código para pedir el ingreso de algún dato:

String pass = JOptionPane.showInputDialog("Ingrese Password:");




Código para convertir una cadena en mayúsculas:


String cadMay = txtFrase.getText().toUpperCase();



Código para convertir una cadena en minúsculas:

String cadMin = txtFrase.getText().toLowerCase();



Código para obtener la longitud de una cadena:

int longitudCad = txtFrase.getText().length();




Código para obtener la longitud de una cadena sin espacios en blanco:

int cont = 0;
for (int i = 0; i < txtFrase.getText().length(); i += 1) {
   if (!txtFrase.getText().substring(i, i + 1).equals(" ")) {
      cont++;
    }
}



Código para saber la primera y la última posición de una subcadena dentro de una cadena, además indica si la subcadena se encuentra o no en la cadena y muestra la subcadena antes de la primera coincidencia y la subcadena después de la última coincidencia:


String cadena = txtFrase.getText();
String subcadena = txtSubcadena.getText();

int posic1raCoincidencia = -1;
for (int i = 0; i < cadena.length() - subcadena.length() + 1; i++) {
   if (cadena.substring(i, i + subcadena.length()).equals(subcadena)) {
      posic1raCoincidencia = i;
      break;
   }
}

int posicUltCoincidencia = -1;
for (int i = cadena.length() - subcadena.length() + 0; i > 0; i--) {
   if (cadena.substring(i, i + subcadena.length()).equals(subcadena)) {
      posicUltCoincidencia = i;
      break;
   }
}

if (posic1raCoincidencia != -1) {
   eti1.setText(posic1raCoincidencia + "");
   eti2.setText(posicUltCoincidencia + "");
   eti3.setText(cadena.substring(0, posic1raCoincidencia));
   eti4.setText(cadena.substring(posicUltCoincidencia + subcadena.length()));
} else {
   eti1.setText("");
   eti2.setText("");
   eti3.setText("");
   eti4.setText("");
   JOptionPane.showMessageDialog(null, "La subcadena no se encuentra dentro de la Frase.");
}




Código para maximizar, restaurar y minimizar una ventana:

this.setExtendedState(JFrame.MAXIMIZED_BOTH);
                                          this.setExtendedState(JFrame.NORMAL);

this.setExtendedState(JFrame.ICONIFIED);





Código para centrar una ventana (primera forma):

this.setLocationRelativeTo(null);




Código para centrar una ventana (segunda forma):


int x = (int) (Toolkit.getDefaultToolkit().getScreenSize().getWidth() / 2 - dialogoPresentacion.getWidth() / 2);
int y = (int) (Toolkit.getDefaultToolkit().getScreenSize().getHeight() / 2 - dialogoPresentacion.getHeight() / 2);
dialogoPresentacion.setLocation(x, y);
dialogoPresentacion.setVisible(true);




Código para centrar una ventana (tercera forma):


Dimension pantalla = Toolkit.getDefaultToolkit().getScreenSize();
Dimension ventana = this.getSize();
int x = (pantalla.width - ventana.width) / 2;
int y = (pantalla.height - ventana.height) / 2;
this.setLocation(x, y);




Diálogo Abrir / Guardar archivo:


int resp;   //una respuesta
File f;     //un fichero

JFileChooser elegirFichero = new JFileChooser();
resp = elegirFichero.showOpenDialog(this);

if (resp == JFileChooser.APPROVE_OPTION) {
    f = elegirFichero.getSelectedFile();
}


getName()       - Devuelve el nombre del fichero.

Por ejemplo:

String nombre = f.getName();
//La variable nombre contendría el nombre del fichero f

getPath()         - Devuelve el camino completo del fichero.

Por ejemplo:

String camino = f.getPath();
//La variable camino contendría el camino del fichero f

exists()              - Devuelve verdadero o falso según exista o no.

Por ejemplo:

if (f.exists() == true ) {
      JOptionPane.showMessageDialog(null, “El fichero f existe”);
} else {
      JOptionPane.showMessageDialog(null, “El fichero f no existe”);
}

delete()            - Borra el fichero

Por ejemplo:


f.delete();  //Borra el fichero f



Código para obtener un número aleatorio entero entre 1 y 10:

        int n;  //el numero
        double aleatorio;
        aleatorio = Math.random();
        aleatorio = aleatorio * 10;
        aleatorio = Math.floor(aleatorio);
        aleatorio = aleatorio + 1;
        n = (int) aleatorio;



Código para redondear un número a 2 decimales:

DecimalFormatSymbols simbolos = DecimalFormatSymbols.getInstance(Locale.ENGLISH);
DecimalFormat formateador = new DecimalFormat("###,###,##0.00", simbolos);

etiMontoEnNumero.setText(formateador.format(Double.parseDouble(txtMontoEnNumero.getText())));




Código para hacer no editables la celdas de un JTable:

tuJTable = new javax.swing.JTable(){
    public boolean isCellEditable(int rowIndex, int colIndex) {
        return false; //Disallow the editing of any cell
    }
}
;



  • Donde tuJTable es el nombre del JTable que quieres hacer sus celdas no editable.
  • En NetBeans hacer lo siguiente:
  • selecciona el JTable en la vista de diseño.
  • Click Derecho y hacer click en la opcion  Customize Code....
  • Escoger en el primer combo custom creation y pegar el código anterior (ver la siguiente imagen):



Código para colocar el texto de un archivo .txt en un JTextPane:

public void ponerTextoEnVI(String caminoFichero) {
    try {
        File fi = new File(caminoFichero);
        FileReader lectura = new FileReader(fi);
        BufferedReader entrada = new BufferedReader(lectura);
        String linea;
        String texto = "";
        linea = entrada.readLine();
        while (linea != null) {
            texto = texto + linea + "\n";
            linea = entrada.readLine();
        }
        entrada.close();
        lectura.close();
        panelTxtTexto.setText(texto);
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, "Error al leer el fichero.");
    }
}




Código para establecer un botón por defecto al pulsar enter:

getRootPane().setDefaultButton(btnAceptar);



Código para convertir a cadena cualquier tipo de valor numérico:

String cad = String.valueOf(numero);




Código para obtener la fecha y hora actual del servidor donde se encuentra instalado el gestor de base de datos SQL Server:

        try {
            String consulta = "select GETDATE() as fechaActual";
            ResultSet rs2 = sentencia.executeQuery(consulta);
            rs2.first();
            eti.setText(rs2.getString("fechaActual"));
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Error");
        }




Código para completar con ceros delante de un número para alcanzar una longitud específica:

long num = 1234;
DecimalFormat df = new DecimalFormat("00000000");
System.out.println(df.format(num));




Código para cambiar el color del texto de una etiqueta cada medio segundo (para esto usamos la clase Timer):


Primero se importa las siguientes bibliotecas:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;

Luego se crean las siguientes propiedades:
    private Timer tim1;
    private ActionListener actListener1;
    boolean color1 = false;

Luego se escribe el siguiente código en el método constructor:

        actListener1 = new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ea) {
                if (color1) {
                    color1 = false;
                    etiMensaje.setForeground(Color.blue);
                } else {
                    color1 = true;
                    etiMensaje.setForeground(Color.yellow);
                }
            }
        };
        tim1 = new Timer(500, actListener1);

Finalmente se escribe los siguientes códigos en los botones Iniciar y Parar para controlar el Timer:

    private void btnIniciarActionPerformed(java.awt.event.ActionEvent evt) {
        if (!tim1.isRunning()) {
            tim1.start();
        }
    }

    private void btnPararActionPerformed(java.awt.event.ActionEvent evt) {
        tim1.stop();
    }



Código para obtener la fecha de la computadora y presentarlo con el formato indicado en un etiqueta:

    Date fechaHoy = new Date();
    SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy");
    etiFec.setText(formatoFecha.format(fechaHoy));





Código para inicializar un dateChooser con la fecha actual de la computadora y presentar el día, mes y año en etiquetas separadas:
    Date fechaHoy = new Date();

    dateChooser.setDate(fechaHoy);
    etiDia.setText(dateChooser.getCalendar().get(Calendar.DAY_OF_MONTH) + "");
    etiMes.setText(dateChooser.getCalendar().get(Calendar.MONTH) + 1 + "");
    etiAnio.setText(dateChooser.getCalendar().get(Calendar.YEAR) + "");
    etiFecha.setText(dateChooser.getDate().toString());






Código para pasar la fecha de un dateChooser a una etiqueta con el formato dd/MM/yyyy:
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
            etiFecha.setText(df.format(dateChooserFechaPllaML.getDate()));
        } catch (Exception exc) {
            JOptionPane.showMessageDialog(this, "Ingrese una fecha válida.");
        }



Código para registrar la fecha y la hora en SQL Server:
INSERT INTO clientes(id,razon_social,fecha_alta)
VALUES(69,'salud cutervo',getdate())





Código para obtener sólo la fecha y sólo la hora de SQL Server en diversos formatos:
SELECT CONVERT (char(10), getdate(), 102), CONVERT (char(10), getdate(), 103),
CONVERT (char(10), getdate(), 105), CONVERT (char(11), fecha_alta, 106), 
razon_social, CONVERT(VARCHAR, fecha_alta, 108) horita FROM clientes






Código para obtener el número de registros de un ResultSet:
rs.last();
int nroRegistros = rs.getRow();





Código para imprimir con Java sin usar iReport:
import java.awt.*;
import java.util.Date;
import java.text.SimpleDateFormat;

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

        Font fuente;
        PrintJob pj;
        Graphics pagina;

//** Se obtiene la fecha del sistema 

        Date Fecha = new Date();
        SimpleDateFormat formato = new SimpleDateFormat("dd/mm/yyyy");
        String fechaSistema = formato.format(Fecha);

//** Se obtiene instancia unobjeto de impresion 

        pj = Toolkit.getDefaultToolkit().getPrintJob(new Frame(), "SCAT", null);

        try {

            pagina = pj.getGraphics();
            pagina.setClip(0, 0, 1800, 1000);
            pagina.setFont(new Font("Times new Roman", Font.BOLD + Font.ITALIC, 16));
            pagina.setColor(Color.black);
            fuente = new Font("Times new Roman", Font.BOLD, 11);

            pagina.drawString("PRODUCCION", 270, 30);

            pagina.setFont(fuente);
            pagina.drawString("NIT 860.037.740-8 REGIMEN COMUN", 285, 50);
            pagina.drawString("Somos Sus Amigos", 385, 63);

//--------------------------------------------------- 

            pagina.drawString("Señor : ", 80, 100);
            pagina.drawString("Dirección : ", 80, 120);
            pagina.drawString("Teléfono : ", 80, 140);
            pagina.drawString("CC / NIT : ", 80, 160);

            pagina.drawString("Fecha: " + fechaSistema, 600, 100);

            pagina.drawString("Vendedor: ", 600, 120);

            pagina.drawString("Automovil", 70, 185);

            pagina.drawRect(40, 170, 150, 160);
            pagina.drawString("1252", 80, 210);
            pagina.drawString("Marca", 230, 185);
            pagina.drawRect(190, 170, 170, 160);
            pagina.drawString("Modelo", 400, 185);
            pagina.drawRect(360, 170, 170, 160);
            pagina.drawString("Valor", 580, 185);
            pagina.drawRect(530, 170, 170, 160);
            pagina.drawString("Cantidad", 740, 185);
            pagina.drawRect(700, 170, 170, 160);
            pagina.drawString("Total", 920, 185);
            pagina.drawRect(870, 170, 170, 160);
            pagina.drawString("Firma Vendedor", 80, 370);
            pagina.drawString("Firma Comprador", 780, 370);

            pagina.drawLine(40, 350, 280, 350);

            pagina.drawLine(750, 350, 1000, 350);
            pagina.drawLine(40, 190, 1040, 190);

            pagina.finalize();

            pagina.create();
            pagina.dispose();
            pj.lastPageFirst();
            pj.getPageResolution();
            pj.end();
        } catch (Exception e) {
            System.out.println("LA IMPRESION HA SIDO CANCELADA...");
        }
    }  



Código para imprimir con Java en una impresora seleccionada desde código fuente:
        try {
            Map parametros = new HashMap();

            String rutaInforme = System.getProperty("user.dir") + "/src/paqueteInformes/informeProgramasPresupuestales.jasper";
            JasperPrint informe = JasperFillManager.fillReport(rutaInforme, parametros, conex.getConexionAServer1());
            // ESTABLECE DATOS DE IMPRESORAS
            PrinterJob job = PrinterJob.getPrinterJob();
            PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
            int selectedService = 0;
            for (int i = 0; i < services.length; i++) {
                if (services[i].getName().contains("EPSONL365")) {
                    selectedService = i;
                }

            }

            job.setPrintService(services[selectedService]);
            PrintRequestAttributeSet printRequestAttributeSet = new HashPrintRequestAttributeSet();
            MediaSizeName mediaSizeName = MediaSize.findMedia(4, 4, MediaPrintableArea.INCH);
            printRequestAttributeSet.add(mediaSizeName);
            printRequestAttributeSet.add(new Copies(1));
            JRPrintServiceExporter exporter;
            exporter = new JRPrintServiceExporter();
            exporter.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE, services[selectedService]);
            exporter.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE_ATTRIBUTE_SET, services[selectedService].getAttributes());
            exporter.setParameter(JRPrintServiceExporterParameter.PRINT_REQUEST_ATTRIBUTE_SET, printRequestAttributeSet);
            exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, Boolean.FALSE);
            exporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, Boolean.FALSE);
            exporter.setParameter(JRExporterParameter.JASPER_PRINT, informe);
            exporter.exportReport();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Error al mostrar el informe.");
        }






Código para imprimir con iReport sin conexión a una base de datos:

- En primer lugar se hace el informe configurando el tamaño de papel.
- Se agregan campos (field) haciendo clic derecho en la respectiva sección, luego se cambia de nombre y de tipo de dato de cada campo de ser necesario.
- Compilamos el informe.

- Creamos una clase con propiedades iguales a los campos del reporte creado anteriormente.
- Creamos un método constructor vacío y otro sobrecargado con argumentos para modificar las propiedades anteriores. (Usamos las teclas Alt + Insert).
- Creamos los métodos getter y setter de todas las propiedades de la clase (Usamos las teclas Alt + Insert).

- Agregar las siguientes bibliotecas:


- Importar las siguientes clases:


- Como último paso en el evento actionPerformed del botón Imprimir codificamos las siguientes líneas:



Código de ejemplo de uso de una barra de progreso:
    private void btn1ActionPerformed(java.awt.event.ActionEvent evt) {                                     
        final Thread th;
        th = new Thread(new Runnable() {
            public void run() {
                for (int j = 1; j <= 100; j++) {
                    barraProgreso.setValue(j);
                    try {
                        Thread.sleep(12);
                    } catch (InterruptedException e) {
                    }
                }
            }
        });
        th.start();
    }



Código para saber si una celda de un JTable es o no nulo:
            int fil = tabla.getSelectedRow();
            int col = tabla.getSelectedColumn();

            if ((tabla.getValueAt(fil, col)) == null) {
                eti.setText("null");
            } else {
                eti.setText("no nulo");
            }





lunes, 17 de octubre de 2016

066.- Clases Importantes Para Programar Con Java en NetBeans

Math.PI: para obtener el valor de PI (3.141592653589793...).

Math.pow(double a, double b): para elevar un base real a una potencia real.

Math.random(): para obtener un número aleatorio entre 0 y 1.

Math.sqrt(double a): para obtener la raíz cuadrada de un número real.



065.- Métodos Importantes De Objetos Para Programar Con Java en NetBeans

Métodos de un objeto cuadro de texto:

selectAll: permite seleccionar todo el texto del cuadro de texto.

getText: permite obtener todo el texto del cuadro de texto.

setText: permite modificar todo el texto del cuadro de texto.



Métodos de un objeto etiqueta:

repaint: se utiliza para volver a pintar la etiqueta.

setBackground: se utiliza para cambiar el color de fondo de la etiqueta.

setForeground: se utiliza para cambiar el color de la fuente de la etiqueta.

setLocation: se utiliza para cambiar la posición de la etiqueta. Este método recibe como parámetros la posición x e y donde situará el componente.

setOpaquese utiliza para activar o desactivar la propiedad opaco de la etiqueta.

setSize: se utiliza para cambiar el tamaño de la etiqueta. Este método recibe como parámetros el ancho y el alto del componente.



Métodos de un objeto botón:

setSize: se utiliza para cambiar el tamaño del botón. Este método recibe como parámetros el ancho y el alto del componente.

064.- Eventos Importantes De Objetos Para Programar Con Java en NetBeans

Eventos de un objeto cuadro de texto:

actionPerformed: responde al presionar la tecla enter cuando tiene el enfoque.

keyReleased: responde al escribir en dicho cuadro de texto.



Eventos de un objeto etiqueta:

mouseEntered: se activa cuando el puntero del ratón se ubica sobre la etiqueta.

mouseExited: se activa cuando el puntero del ratón sale de la etiqueta.



Eventos de un objeto botón:

actionPerformed: responde cuando se hace clic sobre dicho botón.


mouseEntered: se activa cuando el puntero del ratón se ubica sobre el botón.

mouseExited: se activa cuando el puntero del ratón sale del botón.

063.- Propiedades Importantes De Objetos Para Programar Con Java en NetBeans

Propiedades de un objeto etiqueta:

preferredSize: permite definir un tamaño inicial del objeto etiqueta.



Propiedades de un objeto botón:

preferredSize: permite definir un tamaño inicial del objeto botón.



Propiedades de un cuadro de diálogo:

alwaysOnTop: permite que el cuadro de diálogo esté siempre visible cuando este es no modal.