Java
Algoritmia y Programacin
Java
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin 1
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin 2
Contenido
o GUIs (Graphic User Interfaces)
Qu son?
Estructura General de una GUI
Componentes GrficosComponentes Grficos
Jlabel
JTextField
Jbutton
Jpanel
Layouts
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin 3
GUI: Definicin
o Una interfaz grfica de usuario es un mecanismo incorporado en las aplicaciones
para hacer mas amigable la interaccin con el usuario.
o Las GUIs se crean a partir de componentes, stos permiten que el usuario
interacte mediante el ratn, el teclado y otras formas de entrada.
4
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
GUI: Estructura
o Estructura General: En general la estructura de una aplicacin con una GUI
cumple lo siguiente:
Se declara una clase que herede de la clase JFrame
Esta misma clase debe implementar la interfaz ActionListener
Se declaran como atributos los componentes grficos de la interfazSe declaran como atributos los componentes grficos de la interfaz
En el mtodo constructor se instancian los componentes grficos
En el mtodo constructor u otro mtodo especializado se organizan los
elementos de la interfaz
Se declara un mtodo para atender los distintos eventos ejecutados por el
usuario
Se declara un mtodo main y se crea un objeto de la propia clase
5
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
GUI: Estructura
public class UsaGUI {
public static void main( String args[]){GUI aplicacion = new GUI();
}
}
Se crea un objeto de la clase GUI
}
6
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
GUI: Estructura
import java.awt.*;import java.awt.event.*;import javax.swing.*;
public class GUI extends JFrame {Container contenedor;
Una GUI debe heredar de JFrame
public GUI( ){super( "Ttulo de la GUI" );contenedor = getContentPane();contenedor.setLayout( new FlowLayout() );this.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);this.setSize( 275, 170 );this.setVisible( true );
}
7
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
Asigna un ttulo a la ventana
Para terminar el programa
Especifica el tamao
Hace visible la ventana
GUI: Estructura
8
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
GUI: Componentes
o Las GUIs estn compuestas por diferentes elementos como etiquetas, campos de
texto, reas de texto, botones, mens y otros elementos.
9
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
GUI: Componentes
JFrame : Es la ventana sobre la que se construye la GUI.
JLabel : Etiquetas para mostrar mensajes o indicaciones al usuario.
JButton : Se asocia a una operacin que realizar el usuario.
JTextField : Puede permitir tanto la entrada como la salida de datos.
JPanel : Sirve como contenedor para los elementos JLabel, JButton y JTextField.
JFrame
10
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
JFrame
JLabel
JButton
JTextField
JTextAreaJPanel (3 botones)
GUI: JLabel
JLabel : Etiquetas para mostrar mensajes o indicaciones al usuario.
Cmo se declara una etiqueta?
JLabel label1;
Cmo se crea una etiqueta?
label1 = new JLabel(Soy un JLabel);label1 = new JLabel(Soy un JLabel);
11
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
GUI: JTextField
JTextField : Puede permitir tanto la entrada como la salida de datos.
Cmo se declara un campo de texto?
JTextField textField1
Cmo se crea un campo de texto?
textField1 = new JTextField(Ingrese algo,12);textField1 = new JTextField(Ingrese algo,12);
12
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
GUI: JButton
JButton : Se asocia a una operacin que realizar el usuario.
Cmo se declara un bton?
JButton button1;
Cmo se crea un botn?
button1 = new JButton(Soy un JButton);button1 = new JButton(Soy un JButton);
13
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
GUI: JPanel
JPanel : Sirve como contenedor para los elementos JLabel, JButton y JTextField.
Cmo se declara un panel?
JPanel panel1;
Cmo se crea un panel?
panel1 = new Jpanel(new GridLayout(3, 1));panel1 = new Jpanel(new GridLayout(3, 1));
panel1.add(label1);
panel1.add(textField1);
panel1.add(button1);
14
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
GUI: Eventos y Oyentes
o Java utiliza una metfora llamada oyente para hacer que la GUI escuche
continuamente los eventos que pueden suceder sobre sus componentes.
Algunos de los eventos que pueden ocurrir son:
Clic sobre los botones
Completar campos de texto y oprimir la tecla Enter
Hacer clic sobre alguna opcin de un men
Ejecutar un comando con el teclado
Seguir el rastro del ratn
Entre otros.
15
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
GUI: Eventos y Oyentes
o Los oyentes en Java se han clasificado de acuerdo al componente que genera los
eventos y para su manipulacin hay que hacer uso de interfaces como:
ActionListener
MouseListener
ItemListenerItemListener
KeyListener
o Cada componente que puede generar un evento, debe tener un manejador que
indica las acciones que deben ocurrir si se genera un evento
16
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
GUI: Eventos y Oyentes
o Para crear una interfaz de usuario como se muestra en la siguiente figura, se debe
utilizar el oyente ActionListener.
17
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
GUI: Eventos y Oyentes
public class UsaSaluda {
public static void main(String[] args) {Saluda aplicacion = new Saluda();aplicacion.organizarGUI();
}
}
18
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
GUI: Eventos y Oyentes
import javax.swing.*;import java.awt.*;import java.awt.event.*;
public class Saluda extends JFrame implements ActionListener {
Container contenedor;JLabel lNombre;JTextField tfNombre;
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setSize(250,100);this.setVisible(true);
}
public void organizarGUI(){contenedor.add(lNombre);contenedor.add(tfNombre);
JButton bNombre;
public Saluda(){
super("Ttulo de la GUI");contenedor = getContentPane();contenedor.setLayout(new FlowLayout());
lNombre = new JLabel("Nombre : ");tfNombre = new JTextField(10);bNombre = new JButton("Saludar");bNombre.addActionListener(this);
contenedor.add(bNombre);}
public void actionPerformed(ActionEvent e){if (e.getSource()==bNombre){
JOptionPane.showMessageDialog(null,"Hola " + tfNombre.getText());}
}
}
19
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
GUI: Layouts
Existen interfaces mas complejas que requieren de layouts diferentes al
FlowLayout empleado en las diapositivas anteriores para organizar los elementos
grficos.
Por ejemplo como se deben organizar los elementos para obtener las siguientes
interfaces:
20
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
GUI: Layouts
21
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
FIN
22
Escuela de Ingeniera de Sistemas y Computacin.
Curso: Algoritmia y Computacin
Top Related