Usuario:ManuelRomero/swing
De WikiEducator
< Usuario:ManuelRomero
Revisión a fecha de 06:14 9 abr 2012; ManuelRomero (Discusión | contribuciones)
Trabajo en proceso, espera cambios frecuentes. Tu ayuda y retroalimentación son bienvenidos. Ver página de charlas. |
Contenido
INTEFAZ GRÁFICO EN JAVA
- Java define el paquete javax.swing como un conjunto de clases para desarrollar interfaces gráficas.
- Antes eran definidas en java.awt, pero estas no eran independientes de la plataforma
- siwng de JFC (Java Foundation Classes)
- En el paquete java.awt siguen estando las clases para gestionar la colocación de objetos gráficos layout y tema de eventos
- Las clases de awt de denominan pesadas
- Esto implica que los componenetes visuales se traducen a los correspondientes en cada plataforma
- Implica que en diferentes entornos podemos tener diferentes visualizacones
- El swing casi todos son ligeros
- El componente no depende de su equivalente en cada plataforma, está escrito totalmente en java
- Las clases del paquete siwng están escritas en java puro y sí son independientes de la plataforma
- Siwng el paquete que define las clases para el interfaz gráfico de java.
- Actualmente aparece la tecnología javaFX que también incluye desarrollos gráficos, en desarrollos web
CLASIFICACION
- Los elementos gráficos se pueden clasificar en
- Contenedores como una ventana contendrán otros contenedores y contenidos
- Contenidos como un botón que necesitans un contenedor para poder aparecer
Los contenedores los tenemos de dos niveles
- de primer nivel
- de niveles inferiores
Componentes contenidos
- Defivan de la clase JComponent
- Estan definidos en el paquete javax.swing
- Observar que todoas empiezan por la letra J
- En los siguientes apartados estudiaremos alguno de ellos
- Con ello aprenderemos a usar cualquiera.
Componetes contenedores
Existen dos tipos de contenedores nivel superior
JFrame JApplet JWindow JDialog
- Son componentes pesados (Dentro de los componenetes swing son los únicos que tienen esta excepción)
- Se caracterizan por
- Sólo son contenedores y no pueden ser contenidos en otro contenedor
- Son necesarios para que haya un interfaz gráfico
de nivel inferior
Componentes de nivel superior
A su vez tienen tres paneles El panel es una región de contenido del objeto
- Panel de cristal ===>Contiene el resto de paneles, se usa para albergar todos los eventos que puedan ocurrir en cualquiera de los paneles contenidos
- Panel de contenidos ==> Es el panel que va a contener el resto de los objetos (contenedores y contenidos)
- Panel de capas ==> Permite establecer un valor de profundidad de capas.
Fuente de la image http://docs.oracle.com/javase/tutorial/figures/ui/ui-rootPane.gif
- En realidad es bastante trasparente para el desarrollador esta existencia de capas,
- El desarrollador por lo general interactuaemos con el panel de contenidos.
Creando un interfaz gráfico
- Al crear un interfaz gráfico debemos trabajar con la clase JFrame
La clase JFrame tiene muchos métodos Métodos importantes
setTitle(String titulo) Poner el título de la ventana, también posible en constructor. setBounds(int posx, int posy, int alto, int ancho) ubicación (esquina superior izquierda y tamaño) setVisible (Por defecto una ventna no es visible (Objeto pesado) setDefaultCloseOperation (que hacemos con la aplicación al cerrar la ventana) setPack() para que se recargue la pantalla (si hacemos cambios)
- Iremos viendo muchos más métodos según los necesitemos
- Suelen ser muy .
Cómo crear una aplicación con ventanas
- Creamos un objeto de la clase JFrame
- Hacemos una clase que extienda de JFrame
import javax.swing.JFrame class MiVentana{ //Atrubuto JFrame ventana; //Constructor MiVentana{ ventana = new JFrame("Primera Ventana"); ventana.setBounds(100,100,300,400); ventana.setVisible(true); } public static void main(String s[]){ MiVentana v = new MiVentana(); }
import javax.swing.JFrame class MiVentana extends JFrame{ //Constructor MiVentana{ setTitle("Primera Ventana"); setBounds(100,100,300,400); setVisible(true); } public static void main(String s[]){ MiVentana v = new MiVentana(); }
- Hacemos que mi clase sea un
JFrame