lunes, 11 de noviembre de 2013

Lenguaje Java - Etiquetas y Botones

Etiquetas y Botones

Siguiendo con el estudio de los componentes gráficos en Java, tenemos las etiquetas (labels), que generalmente se usan para poner un texto indicando algo o para poner una imagen en un frame.

Bien entonces, agregamos a nuestro proyecto un JLabel.



Le pueden poner el texto que quieran en la propiedad text, igual que el JTextBox.... 




Le pueden poner un cursor definido, en la propiedad cursor..... 


Igualmente que el JTextArea y el JTextField, podemos ponerle borde.... 


Podemos ponerle formato a la letra que está dentro del label. 


Bien, como les mencioné también podemos usar el JLabel para mostrar una imágen, en la propiedad icon.


Borramos el texto para que quede solo la imagen 


Otro componente que generalmente se usa en Java, son los botones, JButton: 


Tiene similares propiedades a los demás componentes, por ejempo el texto.... 


También tiene su propio cursor.... 



Le cambiaremos el nombre para poder editar algunas cosas desde código: 



Si ponemos el nombre del botón en el código y luego ponemos el . (punto) saldrá un menú de propiedades del botón:



Cambiándole el texto al boton desde código..... 


Lenguaje Java - Cajas y Áreas de Texto

 Cajas de Texto y Áreas de Texto


Bien son 2 controles los básicos para manejar el texto dentro de un JFrame (ventana), los cuales son la caja de texto (JTextField) y el área de texto (JTextArea), ahora veremos algunos comandos básicos para editar sus propiedades y también como se hace desde el NetBeans.

JTextField y JTextArea tienen propiedades comunes, JTextArea tiene un poco más de propiedades por lo que permite mayor número de filas.

Primero agregamos al proyecto un nuevo JTextField, le ponemos de texto el nombre que deseamos, en este caso David.

Desde código sería así:      jTextField1.setText("David"); 

Si deseamos podemos ponerle un nombre al componente para su facil manejo desde código....



Le podemos poner borde.... 




Si queremos ponerle algún color de fondo a la cajita de texto.... 
Desde código sería así:     jTextField.setBackground(Color.red); 



Si queremos cambiarle el formato a la letra dentro de la caja de texto... 



Si queremos cambiar el color de la letra dentro de la caja de texto....

Desde código sería así:     jTextField1.setForeground(Color.white);

Si queremos cambiar la posición y el tamaño:

Desde código sería así:     jTextField1.setBounds(20,20, 300,100);  // x,y,ancho,alto

Ahora agregamos un JTextArea, y veremos a continuación algunas propiedades especificas de este componente ( las que vimos anteriormente se repiten para el JTextArea).

Si queremos que sea transparente.....
Desde código sería así:     jTextArea1.setOpaque(false);


 Si queremos que baje automáticamente de linea al llegar a límite derecho del área de texto...
 Desde código sería así:    jTextArea1.setLineWrap(true);



En el caso que no queremos que nos deje escribir nada, solo para visualizar datos....
Desde código sería así:      jTextArea1.setEditable(true);

Lenguaje Java - JFrame

La Ventana - JFrame


Un frame, en netbeans es una clase también, es decir podemos crear un formulario JFrame llamado, Cliente, eso quiere decir que en esa ventana vamos a hacer todo lo referido al Cliente, si le ponemos de nombre por ejemplo Venta, en esa ventana pondremos una interfaz para vender productos, cobrar, etc.

Ahora veremos algunas de las propiedades más comunes de los JFrame, para ello creamos un proyecto con un JFrame:



Nos vamos a la pestaña source, que es la parte donde podemos editar parte del código: 




 En la parte source, encontramos la clase (el frame), encontramos la definición del método constructor de esa clase y el main.




También encontramos que en el método costructor se llama al métodoinitComponents 
Ese método es automáticamente generado por NetBeans al momento de jalar un componente, elimianarlo o cambiarle alguna propiedad en la pestaña Diseño (Design):



Bien si queremos cambiarle por ejemplo que cuando le demos clic en el X roja de cerrar, no se cierre por ejemplo, lo podemos configurar en : 



Si queremos que cuando el cursor parse por arriba de la ventana se ponga una manito, haremos lo siguiente:


También podemos editar las propiedades desde el código, de la siguiente manera:


Lenguaje Java - Interfaz Gráfica / GUI

GUI
(Graphic User Interface)


Bien, continuando con nuestro curso después de las recientes festividades les tengo un tema muy interesante, el cual es el manejo de las "ventanitas" como muchos les llaman, mejor dicho los JFrames, si ahora si vamos a hacer programas como los que suelen ver.

Bien lo primero que hacemos es abrir el netbeans y añadir un proyecto nuevo.




Le agregamos un formulario JFrame



 Le  ponemos un nombre cualquiera, en este caso Ventana


Y aquí tenemos nuestra primera ventana en Java, lista para editarse 


Hay muchos componentes gráficos que java nos perrmite usar, los podemos ver en la parte derecha de la pantalla, en este caso jalaré un panel y lo pondré.


 Luego jalaré 2 paneles y les pondré color ( propiedades salen abajo de los componentes, tienen que darle clic al componente para cambiar sus propiedades), también agregaré 1 JLabel, para poner el texto.



Ejecutamos....


Aqui les presento algunos de los más comunes componentes (controles) usados en Java para programar las ventanas gráficas, la caja de texto, el panel, el boton, las etiquetas (labels), las listas , los checkbox, combobox, areas de texto, etc. incluso se pueden descargar componentes extras de internet que no vienen con el java original.



Aquí esta la parte de las propiedades que les mencioné, desde aquí pueden editar las propiedades del componente que hallamos seleccionado. 



Bien espero que les halla gustado la introducción a la interfaz gráfica de Java espero que le den un buen uso y que sigan desarrollando sus aplicaciones, recuerden que el esfuerzo siempre va la pena.

Lenguaje Java - Ejemplo de Archivos

Ejemplo de manejo de Archivos

El común ejemplo de yacaré!, si es el caso de un cocodrilo que puede estar en 10 posiciones y que tiene un dispositivo que le envia una señal a un computador y la posición la guarda en un archivo de texto, usted debe leer el archivo de texto y hallar la moda, contar cuantos dias estuvo en cada posición, etc.


Bueno la implementación es la siguiente:


import java.io.File;
import java.util.Scanner;


public class Yacare {
    public static void main(String ags[]){
       
        try{
           
          File archivo=new File("yacare.txt"); 
          Scanner scanner=new Scanner(archivo); 
          int aux;
          int pos[]={1,2,3,4,5,6,7,8,9,10};
          int dias[]={0,0,0,0,0,0,0,0,0,0};
 // contadores empiezan con 0 dias
          while(scanner.hasNext()){
              aux=scanner.nextInt(); 
// leo un token del archivo
              for(int i=0;i<10;i++){
                if(aux==pos[i]){
// busco la posicion del token en pos[]
                  dias[i]=dias[i]+1;
 // si lo encuentro le sumo 1 dia
                } 
              }   
          }
          int moda=dias[0];
 // hallamos moda
          int posmoda=1;
           for(int i=0;i<10;i++){
                 if(dias[i]>moda){ 
// si se repite más q la moda
                     moda=dias[i];
                     posmoda=pos[i];
                    
                 }
           }  
          
          
        System.out.println("Pos"+"      "+"Dias");
            for(int i=0;i<10;i++){
                 System.out.println(pos[i]+"           "+dias[i]);
              }   
       
         
          System.out.println("Moda"+"      "+moda);
          System.out.println("Pos Moda"+"      "+posmoda);
        }catch(Exception s){
           
            System.out.println("Error!");
           
        }
       
       
    }
}

Lenguaje Java - Archivos

Archivos en Java

Con java también podemos procesar archivos de todo tipo, leerlos y escribir en ellos, en la lección de hoy veremos como procesar los archivos ".txt", si los archivos planos ( de texto ), para ello usaremos las librerías.

java.io.*;
java.util.Scanner;

En el manejo de archivos se usan las estructuras Try-Catch, nos indican que el código dentro del Try se debe intentar hacer y si ocurre un problema, hacer la parte del Catch.
try{
// hacer algo  y si pasa algo pasar al catch

}catch(Exception obj){ // pongan siempre Exception para cualquier error que ocurra
  // en caso de error en el try hacer lo que esta aqui
}

Escribiendo archivos:

 public void creaData(){
         //Crear un archivo
        try{
             File f=new File("Archivo1.txt");
            FileOutputStream fo=new FileOutputStream(f,true); 
// ese true es para ver si se apila o se
//crea un archivo nuevo
            PrintWriter escribe=new PrintWriter(fo); // el objeto llamado escribe es el que usaremos
       
            escribe.println("1 2 3 4 5 6"); 
// escribimos los valores 1,2,3,4,5,6 separados por un espacio
//de linea y luego damos un salto de linea (println).
            escribe.println("Terminado"); // escribimos terminado
          for(int i=0;i<10;i++){
              escribe.println(""+(i+1)); 
// escribimos los numeros del 1 al 10
          }
        escribe.close();
 //cerrar el archivo es necesario porque si no cierras no guarda
        //también puede usarse el método escribe.flush(); para guardar pero seguir editando
        }catch(Exception a){
            System.out.println("Error!");
        }
    }


*Los archivos se crean en la carpeta del proyecto del netbeans, en el caso que pongamos la ruta del archivo, lo encontraremos en esa ruta, ejm: File f=new File("C:\Archivo1.txt"); en ese caso el archivo estará en C:\, pero si lo dejamos asiFile f=new File("Archivo1.txt"); el archivo respectivo estará en la carpeta del proyecto del netbeans.

Leyendo data de un archivo: Hablamos de token cuando nos referimos a 1 palabra separada por un espacio en blanco o un salto de linea, por ejemplo en " 2 3 4 5 asd 4234" hay 6 tokens.

public void leeArchivo(){
    
    //Lectura de archivos
         try{
             File f=new File("Archivo1.txt"); 
// leemos el archivo creado anteriormente
             Scanner sca=new Scanner(f);
 // declaramos el objeto Scanner para leer
             String aux;
             while(sca.hasNext()){ 
// mientras tenga 1 token el archivo
                 aux=sca.next(); 
// leemos el primer token
                 System.out.println(aux); 
// lo imprimimos en consola
             }
            
            
         }catch(Exception as){
             System.out.println("Error");
         }
        
    }