viernes, 23 de septiembre de 2016

INTERFAZ GRÁFICA DE USUARIO (GUI)

Las interfaces gráficas de usuario(GUI) ofrecen al usuario ventanas, cuadros de diálogo, barras de herramientas, botones, listas desplegables y muchos otros elementos con los que ya estamos muy acostumbrados a tratar. 
Las GUI se construyen a partir de componentes de GUI (llamados widgets). Un componente de GUI es un objeto visual  con el que el usuario puede interactuar a través del teclado o el mouse.  

Existen dos APIs para la programación de interfaces gráficos de usuario AWT(Abstract Windowing Toolkit) y SWING. 


Similitudes entre Swing y AWT
  • Por regla general, las clases Swing "equivalentes" a las  de AWT se llaman igual, pero con una J delante: JFrame, JTextField, JLabel,etc. teniendo en cuenta que "no todos los componentes están extendidos: para algunos hay componentes equivalentes (Choise), para otros no (Canvas) y para otros constructores son diferentes (Checkbox, Scrollbar, List)".
  • Muchos constructores en Swing tienen los mismos argumentos que en AWT, pero no todos. 
Diferencia entre el Swing y AWT

SWINGAWT
Podemos decir que es la evoluciòn del AWT, la cual al igual que Swing es un conjunto de librerias enfocadas a la construcción de interfaces.
Cada una de las componentes de una ventana en AWT se representa mediante uno o más objetos de la aplicación.
El paquete Swing es parte de la JFC (Java Foundation Classes) en la plataforma Java. La JFC provee facilidades para ayudar a la gente a construir GUIs. Swing abarca componentes como botones, tablas, marcos, etc.
La diferencia de los componentes AWT los Swing se reconocen porque anteponen la letra J antes del nombre.Por ejemplo en AWT se llama Label, mientras que en el Swing se llama JLabel.
Las componentes de Swing utilizan la infraestructura de AWT, incluyendo el modelo de eventos AWT, el cual rige cómo una componente reacciona a eventos tales como, eventos de teclado, mouse, etc.
Permite hacer interfaces gráficas mediante artefactos de interacción con el usuario, como botones, menus, etc.


En sí existe una diferencia, pero al mismo tiempo hay grandes aspectos en común, ambos nos srven para realizar artefactos gráficos y utilizan prácticamente las mismas funciones y componentes, pero la diferencia es que Swing es más avanzado y sus componentes se desarrollan mejor, además AWT necesita tener una plataforma especifica, mientras que desde java Swing podemos utilizarlo y visualizarlo desde diferentes lugares.

AWT
Significa Abstract Windowing Toolkit contiene componentes originales pero no pura interfaz gráfica de usuario que viene con la primera versión de JDK.
  • Es una librería que define un conjunto de clases e interfaces java que permiten la construcción de interfaces gráficas de usuario.
  • Permite hacer interfaces gráficas mediante artefactos de interacción con el,usuario, como botones, menús, texto, botones, etc.Tambien despiegue gráfico general. 
COMPONENTES Y CONTENEDORES
  • COMPONENTES
         *Cualquier elemento gráfico que puede aparecer en una GUI.
         *Lo son todas las clases que derivan de java.awt.Component

         *Ejemplos:

-Botones (java.awt.Button), Campos de texto (java.awt.TextField), etiquetas (java.awt.Label),Listas (java.awt.List), elementos de selección múltiple y exclusiva (java.awt.Checkbox),etc.

  • CONTENEDORES
        *Es un elemento gráfico que puede contener dentro a componentes.
        *Lo son todas las clases que derivan de java.awt.Container
        *Ejemplos:
                           -Ventana (java.awt.Frame)
                           -Dialogo (java.awt.Dialog)
                           -Panel (java.awt.Panel)


JERARQUÍA DE AWT




SWING
Swing es la  evolución de AWT, la cuál al igual que Swing es un conjunto de librerias enfocadas a la construcción de interfaces.

  • Las clases cuyo nombre comienza por J forman parte de Swing.
  • Swing está escrito complementamente en java por lo que es independiente de la plataforma.


COMPONENTEDESCRIPCIÓN
JButton Una implementación de un botón "push".
JCheckBoxUna implementación de una casilla de verificación-un elemento que puede activarse o desactivarse, y que muestra su estado al usuario.
JComboBox Un componente que combina un botón o campo editable y una lista desplegable.
JComponentLa clase base para todos los componentes Swing, excepto contenedoresde Alto nivel.
JDialog La clase principal para la creación de una ventana de diálogo.
JFileChooser Proporciona n mecanismo sencillo para que el usuario elija un archivo.
JFrameUna versión extendida de java.awt.Frame que añade soporte para la arquitectura de componentes JFC/Swing.
JLabelUn área de visualización de una cadena corta de texto o una imagen, o ambos.
JList Un componente que muestra una lista de objetos y permite al usuario seleccionar uno o más  elementos
JMenu Una implementación de un menu-una ventana emergente que contiene JMenusItems que se    muestra cuando el usuario selecciona un elemento en la JMenuBar.
JOptionPaneHace que sea fácil para que aparezca un cuadro de diálogo estándar que solicita a los   usuarios un valor o les informa algo.
JPanelEs un contenedor ligero genérico.
JRadioButtonUna implementacion de un boton de radio-un elemento que puede activarse o desactivarse, y que muestra su estado al usuario.
JScrollBarUna implementación de una barra de desplazamiento.
Jslider Un componente que permite al usuario seleccionar gráficamente un valor deslizando un botón dentro de un intervalo acotado.
JTextAreaUn JTextArea es un area de varias lineas que muestra texto sin formato.
JTextFieldUn JTextField es un componente ligero que permite la edición de una sola línea de texto.
JTreeUn control que muestra un conjunto de datos jerárquicos como un esquema.
JWindow Un JWindow es un contenedor que se puede mostrar en cualquier lugar en el escritorio del usuario
JApplet Una versión extendida de java.applet.Applet que añade soporte para la arquitectura de componentes JFC / Swing

JERARQUÍA DE SWING


A continuación se realizara un ejemplo de operaciones: suma, resta, producto y cociente
//A continuación se realizara un ejemplo de operaciones:suma, resta,prodcto y cociente
package Tarea;
import java.awt.event.*;
import javax.swing.*;

public class Calcu extends JFrame{
    
    JLabel jl_var_1;
    JLabel jl_var_2;
    JLabel jl_result;   
    JTextField jtf_var1;
    JTextField jtf_var2;
    JTextField jtf_resultado;
    JButton btn_suma;
    JButton btn_resta;
    JButton btn_producto;
    JButton btn_cociente;
    JButton btn_salir;
    
    public Calcu() {
        
        setLayout(null);
        
        jl_var_1= new JLabel("Variable 1");
        jl_var_1.setBounds(10, 10, 100, 20);
        
        jl_var_2= new JLabel("Variable 2");
        jl_var_2.setBounds(10, 30, 150, 25);
        
        jl_result=new JLabel("Resultado");
        jl_result.setBounds(30, 170, 100, 15);
        
        jtf_var1= new JTextField(50);
        jtf_var1.setBounds(80,10,100,20);
        
        jtf_var2 = new JTextField(50);
        jtf_var2.setBounds(80,40,100,20);
        
        jtf_resultado = new JTextField(50);
        jtf_resultado.setBounds(100, 170, 120, 20);
        
        btn_suma= new JButton("Suma");
        btn_suma.setBounds(150, 70, 100, 20);
        
        btn_resta = new JButton("Resta");
        btn_resta.setBounds(150, 95, 100, 20);
        
        btn_producto = new JButton("Producto");
        btn_producto.setBounds(150, 120, 100, 20);
        
        btn_cociente = new JButton("Cociente");
        btn_cociente.setBounds(150, 145, 100, 20);
        
        btn_salir= new JButton("Salir");
        btn_salir.setBounds(150, 200, 100, 20);
        
        add(jl_var_1);
        add(jl_var_2);
        add(jl_result);
        add(jtf_var1);
        add(jtf_var2);
        add(jtf_resultado);
        add(btn_suma);
        add(btn_resta);
        add(btn_producto);
        add(btn_cociente);
        add(btn_salir);
        
        btn_suma.addActionListener(new evenSuma());
        btn_resta.addActionListener(new evenResta());
        btn_producto.addActionListener(new evenProducto());
        btn_cociente.addActionListener(new evenCociente());
        btn_salir.addActionListener(new evenSalir());

        
        setTitle(" OPERACION ");
        setSize(300,300);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        
    }
    
    public  class evenSuma implements ActionListener{

        public  void actionPerformed (ActionEvent ee){
            if (ee.getSource()==btn_suma) {
                double a,b,s;
                String n;
                a=Double.parseDouble(jtf_var1.getText());
                b=Double.parseDouble(jtf_var2.getText());
                s=a+b;
                n=String.valueOf(s);
                jtf_resultado.setText(n);
            }
            
            
        }
    }
     
    public class evenResta implements ActionListener{
         public  void actionPerformed (ActionEvent e){
             if (e.getSource()==btn_resta) {
                double a,b,r;
                String m;
                a=Double.parseDouble(jtf_var1.getText());
                b=Double.parseDouble(jtf_var2.getText());
                r=a-b;
                m=String.valueOf(r);
                jtf_resultado.setText(m);
             }
         }
    }
    
    public class evenProducto implements ActionListener{
        public void actionPerformed (ActionEvent eee){
            if (eee.getSource() == btn_producto) {
                double a,b,p;
                String mm;
                a=Double.parseDouble(jtf_var1.getText());
                b=Double.parseDouble(jtf_var2.getText());
                p=a*b;
                mm=String.valueOf(p);
                jtf_resultado.setText(mm);
            }
        }
    }
    
    public class evenCociente implements ActionListener{
        public void actionPerformed(ActionEvent eee){
            if (eee.getSource() == btn_cociente) {
                double a, b, c;
                String nn ;
                a=Double.parseDouble(jtf_var1.getText());
                b=Double.parseDouble(jtf_var2.getText());
                if (b != 0) {
                    c=a/b;
                    nn=String.valueOf(c);
                    jtf_resultado.setText(nn);
                    
                }else{
                    JOptionPane.showMessageDialog(null, "No existe");
                }
            }
        }
    }
    
    public class evenSalir implements ActionListener{
        public void actionPerformed (ActionEvent eeee){
            if (eeee.getSource() == btn_salir) {
                System.exit(0);
            }
        }
    }
    
    public static void main(String[] args) {
        Calcu calcu = new Calcu();
    }
    
}


No hay comentarios.:

Publicar un comentario