Sunteți pe pagina 1din 9

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURMAC

CARRERA PROFESIONAL DE INGENIERA INFORMTICA Y SISTEMAS

GUA 06 DE LABORATORIO SWING: JFrame, JButton, Toolkit

1. DATOS ACADEMICOS:
Nombre Asignatura : Algortmica III
Unidad : Primera Unidad: Programacin Orientada a Objetos en Java.
Tema : Librera SWING: JFrame, JButton, Toolkit
Docente : Ing. Erech Ordez Ramos

2. PROCEDIMENTAL
- Desarrolla programas y compila la aplicacin utilizando la interfaz grfica para crear formularios y
componentes dentro de este.
- Disea, compila y ejecuta programas.

3. PLAN DE CLASES
4. OBJETIVO
Conocer la funcionalidad del uso del mtodo grfico en Java
5. SESIN N 07(Tiempo Estimado: 02 Horas)

5.1. MARCO TERICO


Java permite crear aplicaciones graficas conocidas tambin con el nombre de interfaz grafica de usuario
(GUI), Para programar aplicaciones grficas debemos tener tres aspectos bsicos:

Los diferentes componentes (controles) que conforman la interfaz.


La posicin de los componentes para elaborar la interfaz.
El control de eventos que responden a la interaccin del usuario.

Swing.

La biblioteca Swing nos permite dotar de una interfaz grfica a nuestras aplicaciones, dotndolas de
interactividad y riqueza visual.

La Clase JFrame

La clase Jrame proporciona la ventana superior creada para la aplicacin, es el componente contenedor
que permite agregar sobre el otros componentes contenedores y los controles grficos que permiten
interactuar al usuario con la aplicacin.
La clase JFrame se encuentra en el paquete javax.swing, Jframe es una subclase de Frame.

Mtodos de la Clase JFrame

JFrame() Construye un nuevo marco inicializando invisible.


Jframe(String titulo) Construye un nuevo marco invisible con el titulo especificado en la barra de titulo
Principales mtodos de la clase JFrame

1. getContentPane().- Retorna el objeto contentpane para el Jframe.


2. setContentPane (Container panel).- Asigna la propiedad contentPane. Este mtodo puede ser llamado
por el contructor.
Parmetros:
Panel: El objeto contentPane para el JFrame
3. setMenuBar (JMenuBar menu).- Asigna una barra de men al Jrame
Parmetros: menu: La barra de men que se colocara en el Jframe.
4. getMenuBar(), retorna el objeto menubar asignado al frame
5. setTitle(String titulo), Asigna el titulo para el JFrame. en el parmetro titulo
Parmetros: Titulo: El titulo que se mostrar en el borde del JFrame.
6. setResizable (bolean valor), Determina si el frame puede cambiar su tamao por el usuario
Parmetros: Valor: true si se puede cambiar o false si no se puede cambiar.
7. setIconImagen(Imagen imagen), Asigna la imagen que se mostrar como icono en el Frame
Parmetros: imagen: La imagen que se va a mostrar como icono en el frame.
8. getIconImage(), Recupera la imagen que se muestra como icono en el frame o null si no se tiene
ninguna imagen de icono.
9. SetVisible(bolean valor), muestra u oculta el JFrame dependiendo del contenido del valor del
parmetro.
Parmetros: Valor: Si es Trae, muestra el JFrame; de lo contrario, lo oculta.
10. SetBackground(Color color), Asigna el color de fondo del JFrame.
Parmetros: Color: El color que le JFrame tendr como fondo.
11. setSize(int ancho, int alto), Cambia el tamao del JFrame al ancho y alto especificado
Parmetros: Ancho: El nuevo ancho del JFrame en pixeles.
Alto: El nuevo alto del JFrame en pixeles
12. setDefaulCloseOperation(int operacion), Asigna la operacin que sucedera por defecto cuando el
usuario inicie un Close(Cerrar) en el JFrame.
DO_NOTHING_ON_CLOSE
No hace nada, requiere que el programa maneje la operacin en el mtodo WindowClosing de un
objeto
HIDE_ON_CLOSE
Oculta automticamente el JFrame despus de invocar cualquier WindowsListener registrado
DISPOSE_ON_CLOSE
Oculta automticamente y termina el JFrame
EXIT_ON_CLOSE
Sale de la aplicacin como un System.exit. Use esto solamente en aplicaciones
Nota: el Valor por defecto asignado es HIDE_ON_CLOSE

La Clase Toolkit
La Clase Toolkit proporciona una interfaz independiente de la plataforma para servicios especficos tales
como: fuentes, imgenes, impresin y parmetros de pantalla. No se puede instanciar la clase Toolkit ya
que es una clase abstracta, pero se puede acceder a ella invocando al mtodo getDefaulToolkit(). Que
devolver un objeto de este tipo
Ejemplo 1.
Crear una aplicacin que presente una ventana con el ttulo Aplicacin Grafica 1.
package Graficos;

import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.*;

public class Formulario extends JFrame


{
private static final long serialVersionUID = 1L;
private Formulario(String titulo)
{
super(titulo);
iniciar();
}
private void iniciar()
{
this.setSize(400, 300);
this.setVisible(true);
Image icono1 = Toolkit.getDefaultToolkit().getImage("E:\\clases\\algo III
clases\\imagenes\\twitter.jpg");
this.setIconImage(icono1);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE); //al cerrar la aplicacion

}
public static void main(String[] args)
{
new Formulario ("Aplicacin Grafica N 1");
}
}

La Clase Color
Es una clase que encapsula colores en el espacio de color sRGB o en espacios indefinidos de color
arbitrarios por un ColorSpace, cada color tiene un valor implcito alfanumrico.

Campos de la Clase Color


Color.black Color negro
Color.blue Color azul
Color.darkGray Color gris oscuro
Color.gray Color gris
Color.green Color verde
Color.orange Color naranja
Constructores de la Clase Color

Color(flota rojo, flota verde, flota azul)


Crea un color sRG opaco con los valores para rojo, verde y azul especificados en el
rango (0.0 1.0)
Color(int rojo, int verde, int azul)
Crea un color sRGB opaco con los valores rojo, verde y azul en el rango de (0 - 255)

La Clase JButton
Comando utilizado para iniciar o cancelar una accin.

Mtodos Constructores de la Clase JButton


1. JButton(). Construye un nuevo botn sin texto ni icono.
2. JButton(Icon icono). Construye un nuevo botn con un icono.
3. JButton(String texto). Construye un nuevo botn con el texto especificado en el parmetro especificado
texto
4. JButton(String texto, Icon cono). Construye un nuevo botn con el texto especificado en el parmetro
especificado texto y un icono especificado en el parmetro icono.
5. getText(). Retorna el texto del botn.
6. setText(String texto). Asigna el texto al botn.
7. setBounds(int x, int y, int ancho, int alto). Mueve y cambia de tamao al componente, la localizacin se
especifica en los parmetros x,y, y el tamao en los parmetros nacho y alto.
Parmetros
x: La coordenada x del botn.
y: La coordenada y del botn.
Ancho: El nuevo ancho del botn.
Alto: El nuevo alto para el botn.

Ejemplo 2.- Creamos una clase con botones que nos permita cambiar los colores
package Graficos;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Colores extends JFrame
{
private static final long serialVersionUID = 1L;
JButton cmdRojo, cmdVerde, cmdAzul, cmdAmarillo,cmdRosa,
cmdNegro, cmdBlanco, cmdCyan;

public Colores(String titulo)


{ super (titulo);
setSize(500,200);
setTitle("Colores Varios");
setDefaultCloseOperation(EXIT_ON_CLOSE);

getContentPane().setLayout(new FlowLayout());
cmdRojo=new JButton("Rojo");
cmdVerde=new JButton("Verde");
cmdAzul=new JButton("Azul");
cmdAmarillo=new JButton("Amarillo");
cmdRosa=new JButton("Rosa");
cmdNegro=new JButton("Negro");
cmdBlanco=new JButton("Blanco");
cmdCyan=new JButton("Azul Claro");

cmdRojo.addActionListener(new ManejaEventos());
cmdVerde.addActionListener(new ManejaEventos());
cmdAzul.addActionListener(new ManejaEventos());
cmdAmarillo.addActionListener(new ManejaEventos());
cmdRosa.addActionListener(new ManejaEventos());
cmdNegro.addActionListener(new ManejaEventos());
cmdBlanco.addActionListener(new ManejaEventos());
cmdCyan.addActionListener(new ManejaEventos());

getContentPane().add(cmdRojo);
getContentPane().add(cmdVerde);
getContentPane().add(cmdAzul);
getContentPane().add(cmdAmarillo);
getContentPane().add(cmdRosa);
getContentPane().add(cmdNegro);
getContentPane().add(cmdBlanco);
getContentPane().add(cmdCyan);
}

class ManejaEventos implements ActionListener


{
public void actionPerformed(ActionEvent e)
{
String color=((JButton) e.getSource()).getText();
if(color.equals("Rojo"))
getContentPane().setBackground(Color.red);
if(color.equals("Verde"))
getContentPane().setBackground(Color.green);
if(color.equals("Azul"))
getContentPane().setBackground(Color.blue);
if(color.equals("Amarillo"))
getContentPane().setBackground(Color.yellow);
if(color.equals("Rosa"))
getContentPane().setBackground(Color.pink);
if(color.equals("Negro"))
getContentPane().setBackground(Color.black);
if(color.equals("Blanco"))
getContentPane().setBackground(Color.white);
if(color.equals("Azul Claro"))
getContentPane().setBackground(Color.cyan);
}
}
public static void main(String[] a)
{ Colores c1=new Colores("Pantalla de Colores");
c1.show();
}
}

Componentes Swing
En las aplicaciones anteriores se construye el objeto principal que va a contener los controles, a
continuacin explicaremos los componentes Swing para construir los controles, a continuacin se
muestra una lista de los componentes ms comunes:

Clase Descripcin
JLabel Etiquetas, se implementan a partir de la clase JLabel se utilizan para
mostrar texto/imgenes.
JTextField Cajas de texto. Se implementan a partir de la clase JTexField las de una sola
linea de texto, y a partir del JTextArea las de varias lineas
JTextArea Para editar y mostrar contenido de texto con un solo atributo en varias
lineas.
JPasswordField Para editar y mostrar una contrasea
JButton Botones, se implementan a paratir de la clase JButton, Componentes
seleccionables que admite la presentacion de texto e imgenes
JCheckBox Componente seleccionable que muestra el estado al usuario

Principales mtodos de la clase JFrame

1. JLabel(), Crea una instancia de la clase JLabel sin ninguna imagen y con una cadena vaca para el titulo.
2. JLabel(Icon imagen), Crea una instancia de JLabel con la imagen especificada.
3. JLabel(Icon imagen, int alineamientoHorizontal), Crea una instancia de Jlabel con la imagen especificada
alineado horizontalemente.
4. JLabel(String texto), Crea una instancia de JLabel con el texto especificado
5. JLabel(String texto, icon icono, int alineamientohorizontal), Crea una instancia de JLabel con el texto e
imagen especificados y alineados horizontalemente.
6. JLabel(String texto, int alineamientohorizontal), Crea una instancia de JLabel con el texto especificado y
alienado horizontalemente.
Ejemplo 3. Creamos un formulario que inserte texto y tambin un botn.
package Graficos;
import javax.swing.*;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JTextField;

public class HolaMundoSwing extends JFrame


{
private static final long serialVersionUID = 1L;
private JFrame ventana; //Creamos la ventana
private JButton boton; //Creamos el botn
private JTextField texto; /** El campo de texto */

public static void main(String [] args)


{
new HolaMundoSwing(); //Creamos una instancia de HolaMundoSwing
}

public HolaMundoSwing() // Crea la ventana, inicializa todo y la visualiza


{
// Nueva ventana. Se el pone un FlowLayout para que el botn y campo de texto quede alineados.
ventana = new JFrame("Ventana Hola Mundo");
ventana.getContentPane().setLayout(new FlowLayout());

boton = new JButton("Plsame"); // Se crea el botn y se mete en la ventana


ventana.getContentPane().add (boton);

texto= new JTextField(20); // Se crea el campo de texto y se mete en la ventana


ventana.getContentPane().add(texto);

boton.addActionListener(new ActionListener() // Se le dice al botn qu tiene que hacer cuando lo


pulsemos.
{
public void actionPerformed(ActionEvent e)
{
texto.setText ("Hola mundo");
}
});

// Se le dice a la ventana que termine el programa cuando se la cierre


ventana.setDefaultCloseOperation(EXIT_ON_CLOSE);
ventana.pack(); // Se le da un tamao automtico a la ventana para que alcance en todo su
contenido.
ventana.setVisible(true);
}
}
Ejemplo 4.- Creamos una clase para poder heredarla, esta clase no tiene mtodo Main como se podr apreciar, y
es porque la usaremos de base o plantilla para todas nuestra siguientes aplicaciones.

package Graficos;
import java.awt.*;
import javax.swing.*;
public class FrameBase extends JFrame
{
private static final long serialVersionUID = 1L;
protected FrameBase(String titulo)
{
super(titulo);
iniciar();
}
private void iniciar()
{
//al cerrar la aplicacion
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Image icono1 = Toolkit.getDefaultToolkit().getImage("D:\\Hesmeralda\\eapiis.png");
this.setIconImage(icono1);
//Cambiar el color del fondo del panel
this.getContentPane().setBackground(new Color(166,202,240));
this.getContentPane().setLayout(null);
this.setResizable(true);
this.setVisible(true);
}
public void mostrarventana(int num1, int num2)
{
this.setSize(num1, num2);
Dimension marco = this.getSize();
Dimension tamaopantalla= Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((tamaopantalla.width -marco.width)/2 ,(tamaopantalla.height-
marco.height)/2);
}
}
Ejemplo 6.- Creamos una lista heredando de esta clase base (Frame Base)

package Graficos;

import javax.swing.*;
public class Lista extends FrameBase
{
private static final long serialVersionUID = 1L;
private JLabel JLabel1 = null;
private JList JList1 = null;
public Lista(String titulo)
{
super(titulo);
iniciarcontroles();
}
private void iniciarcontroles()
{
JLabel1 = new JLabel("Publicaciones");
JLabel1.setBounds(16,12,125,15); //Posicion x, y, ancho y alto

DefaultListModel lista = new DefaultListModel();


lista.addElement("Visual Basic"); //Agregamos elementos a la lista
lista.addElement("Pawer Builder");
lista.addElement("SQL Server");
lista.addElement("Visual C++");
lista.addElement("Borland C++");
lista.addElement("Java");
lista.addElement("C#");
JList1 = new JList(lista); //Volcamos los datos a la lista
JList1.setBounds(17,36, 245, 158); //Damos los parmetros para x, y, ancho y alto
this.getContentPane().add(JLabel1); //Aadimos al panel la etiqueta
this.getContentPane().add(JList1); //Aadimos al panel la lista
mostrarventana(300,300); //Ejecutamos el mtodo mostrar ventana
this.setVisible(true);
}

public static void main(String[] args)


{
new Lista("Ejemplo de Lista");
}
}

EJERCICIOS DE EXTENSIN
1. Crear una Ventana que se herede de la Clase FrameBase.
2. Crear una aplicacin que muestre un JLabel y una imagen al lado de su texto.
3. Crear una Ventana que me muestre el registro de un Alumno.

S-ar putea să vă placă și