jueves, 27 de octubre de 2016

INTERFAZ GRÁFICA GUI


Llamamos Interfaz Gráfica GUI (Graphical User Interface) al conjunto de componentes gráficos que posibilitan la interacción entre el usuario y la aplicación. Es decir ventnas, botones, combos, listas, cajas de diálogo, campos de texto, etc.
Primero tenemos que diseñar la aplicación,programarla y por último los eventos que se generan a medida que el usuario interactua con la Interfaz. 
Los componentes son objetos de las clases que heredan de la clase base componente como Button, List, TextField, TextArea, Label, etc.
En una GUI los componentes son contenidos en Contenedores o containers.
Un Containes es un objeto cuya clase hereda de Container(clase que a su vez es subclase de Component) y tiene la responsabilidad de contener Componentes. 
Generalmente una GUI se monta sobre un Frame.Esté sera el Container principal que contendrá a los componentes de la Interfaz Gráfica, un Container podría contener a otros containers.

Contenedores

  • JFrame.Habitualmente la clase JFrame se emplea para crear la ventana principal de una aplicacion en Swing.
  • JDialog.Ventanas de interaccion con el usuario.
  • JPanel.Agrupa a otros componentes.
  • JScrollPanel .Incluye barras de desplazamiento


 La API de Java para desarrollo de GUI
La interfaz de ususuario es la parte del programa que permite al usuario interaccionar con él. La API de Java proporciona una biblioteca de clases para el desarrollo de Interfaces graficas de usuario(en realidad son dos). La biblioteca proporciona un conjunto de herramientas para la construccion de interfaces graficas,su estructura basica gira en torno a componenest y contenedores. La API esta constituida por clases,interfaces y derivaciones.

AWT y SWING

  • AWT (Abstract Windows Toolkit ) y Swing son librerías de clases para el desarrollo de GUIs.
  • Algunos componentes de AWT usan código nativo y por ello es dependiente de la plataforma Java 5.
  • Swing está escrito completamente en Java por lo que es independiente de la plataforma

-Las aplicaciones distribuídas entre varias plataformas tiene la misma apariencia 
-Se puede considerar como el reemplazo de AWT

Componentes de AWT
Componentes de Swing
Ejemplo1
Crear un boton


package blog;

import javax.swing.*;

import java.awt.*;

public class gui01 extends JFrame{

    private Container panel;

    private JButton miboton;

    public gui01(){

        super("Ejemplo 01 con boton");

        //Configurar componentes

        miboton=new JButton("Aceptar");

        panel=getContentPane();

        panel.add(miboton);

      

        setSize(200,100);

        setVisible(true);

        setDefaultCloseOperation(EXIT_ON_CLOSE);

    }

    public static void main(String[] args) {

        gui01 a=new gui01();

    }

}





Ejemplo2.
Reproducir un valor



package blog;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class gui02 extends JFrame{



    JButton botonCopiar;

    JTextField campoValor,resultado;

  

    public gui02(){

        setLayout(new FlowLayout());

        add(new JLabel("Valor"));

        campoValor=new JTextField(5);

        add(campoValor);

        botonCopiar=new JButton("Copiar");

        add(botonCopiar);

        botonCopiar.addActionListener(new OyenteBoton());

        add(new JLabel("                  Copia"));

        resultado=new JTextField(6);

        setSize(400,100);

        setVisible(true);

        setDefaultCloseOperation(EXIT_ON_CLOSE);   

    }

    public static void main(String[] args) {

        gui02 ventana=new gui02();

    }

    class OyenteBoton implements ActionListener{

        public void actionPerformed(ActionEvent e){

           String valor=campoValor.getText();

           resultado.setText(valor);

    }

}

}











ARCHIVO DE TEXTO PLANO

ARCHIVO DE TEXTO PLANO 
 Escribir en un archivo de texto con extensión .txt. 
 CREAR ARCHIVOS
 Escribir en un archivo de texto con extensión .txt.
 File f=new File(“ruta”); 
 ESCRIBIR ARCHIVOS 
FileWrite fr=new FieWrite(f); 
fr.Write(“nombre del archivo”); 
fr.close;
 LEER ARCHIVOS
 FileReader fr=new FileReader(f); 
BufferReader br=BufferReader(fr);
 EJEMPLO:

package textoplano;
import java.io.*;

public class Archivo_Plano {
    private File f;
    public void crear_archivo(){
        try {
//            f=new File("C:/Users/Alumno/Documents/Secretitos.txt");
                       f=new File("archivos/Secretitos.txt");
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
    public void escribir_archivo(){
        try {
            FileWriter fr = new FileWriter(f);
            fr.write("Este es mi archivo plano");
            fr.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
    public void leer_archivo(){
        try {
            FileReader fr=new FileReader(f);
            BufferedReader br=new BufferedReader(fr);//lo que hace el buffer el llere los datos uno por uno
            String linea=null;//va leer las lineas d emi archivo
            while ((linea=br.readLine())!=null) {                
                System.out.println(linea);
            }
            br.close();
            fr.close();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

package textoplano;

public class Principal_archivoplano {
    public static void main(String[] args) {
        Archivo_Plano ap=new Archivo_Plano();
        ap.crear_archivo();
        ap.escribir_archivo();
        ap.leer_archivo();
    }
    
}

jueves, 1 de septiembre de 2016

ARREGLOS UNIDIMENSIONALES(VECTORES)

Muchos de nosotros en algún momento hemos oído estos términos, incluso cuando nos metemos en el mundo de la programación vemos lo que son los arreglos unidimensionales (vectores) y bidimensionales (matrices), incluso vemos muchas veces estos temas en las matemáticas; pero estas son totalmente distintas ya que en matemática los vectores se define como un elemento del espacio vectorial. 
 En la programación, los vectores son medios donde se guarda conjunto de elementos del mismo tipo de dato: es decir, un arreglo unidimensional puede almacenar datos de tipo cadenas, enteros, flotantes, etc. Se puede acceder a cada elemento individual del arreglo mediante un índice cuyo tipo de dato debe de ser entero (int). Los índices de un vector por lo general inicializan en "0" y su mayor índice terminan en "n-1"; siendo n la longitud o tamaño del arreglo y este se fija cuando lo creamos.
A continuación vamos a ver como declarar un arreglo, inicializar y asignar elementos. Para declarar un arreglo podemos hacer de la siguiente manera: 

 *Ponemos el                                  tipo_de_dato[] nombre_del_arreglo;
 *Puede hacerse de otra forma       tipo_de_dato nombre_del_arreglo[]; 

 Por ejemplo: para declarar un arreglo de tipo entero hacemos
int[]vector;
int vector[];
En ambos casos hemos creado el arreglo de tipo entero llamado "vector", pero si nos damos cuenta no tiene definido el tamaño; entonces para asignar el tamaño seria lo siguiente: 

 vector= new int[tamaño]; 
 vector= new int [5]; 

Ahora para llenar con datos a este vector puede hacerse de varias maneras, como por ejemplo puede ser de manera directa o como también mediante bucles repetitivos (for, while, do-while). veamos el siguiente ejemplo :
 El llenado directa mente puede darse en dos formas

int vector[]={10,15,20,25,30}; //se le asigna la cantidad de datos correspondiente al tamaño del arreglo entre llaves separado por comas.

Otra forma es :
vector[0]=10;
vector[1]=15;
vector[2]=20;
vector[3]=25;
vector[4]=30;

*El llenado por un bucle se da de la siguiente manera:


Scanner sc = new Scanner(System.in);
 int numero; for (i = 0; i < vector.length; i++) {// la palabra length es usado para darnos el tamaño asignado del vector 
 System.out.println("Ingre elemento al vector : ");//10, 15, 20, 25, 30 
 numero = sc.nextInt(); vector[i] = numero;

Para imprimir los resultados se hace uso de un bucle, en este caso usaremos "for"


for (i = 0; i < vector.length; i++) {// la palabra length es usado para darnos el tamaño asignado del vector System.out.println(vector[i]); }

A continuación dejamos algunos ejercicios sencillos donde usted tendrá que encontrar 4 errores en los siguiente códigos:
1. int[] a= new int[20]; 
2. float[] b= new float[10]; 
3. int a2 = new int [20]; 
4. int[] b2 =new float[10]; 
5. a[2] = -5;
6. a[4] = 10; 
7. int k = a[6]; 
8. a[k] = 20; 
9. a[20] = 0; 
10. a[3] = 1.1;

 Bibliografía: 

  • Fundamentos de Programación (Algoritmos, estructura de datos y objetos)//Autor: Luis Joyanes Aguilar.// Cuarta Edición//Cap. 7 pag. 248.
  •  Curso-Taller: "Fundamentos de Java"//Autor del manual: Ángel Chata T.//Docente: José del Carmen Canchucaja Vilchez. 
  •  Programación con Java 2//Autores: Abraham Gamarra Moreno, Job Daniel Gamarra Moreno, Juan Gamarra Moreno.//Cap. 2 pag. 107.