Gui en java
• Tecnología Swing
– NetScape (IFC) , IBM, Lighthouse Design
Elementos de Swing
• Componentes y contenedores
– Componentes. Aspecto visible del interfaz
• botones, etiquetas, campos de texto, etc • Se sitúan dentro de algún contenedor
• JFC
– AWT, Java 2D, Accesibility, Drag and Drop, Swing
• Cambios importantes desde la versión 1.1 a 1.2
– Versión 1.1AWT – Versión 1.2 en adelante incluyen JFC: SWING – Actualmente, los navegadores no entienden JFC
– Contenedores. Almacenes de componentes
• Pueden contener a otros contenedores • Dos tipos
– Superiores: JApplet, JFrame, JDialog, – Intermedios: JPanel, JScrollPane, JSplitPane, JTabbedPane, JToolBar y otros más especializados
• Swing está apoyado en parte en AWT • AWT Abstract WindowToolkit
– La librería se encuentra en el paquete java.awt
1
3
AWT v SWING
• Por cada elemento de AWT existe un elemento en el sistema operativo que lo representa
– El resultado final dependerá de este elemento
Contenedores superiores I
• Problema:
– Hay facilidades que algún sistema operativo no tiene por lo que AWT define lo mínimo común
• Swing elimina este problema
– Definea lomáximo – Necesita los paquetes (y subpaquetes) • java.awt.* y javax.swing.*
2
• Disponen de un panel de contenidos (contentPane) • Pueden opcionalmente disponer de un menú
Container cpane = unaFrame.getContetPane(); unaFrame.setContentPane(unPanel); unaFrame.setJMenuBar(unMenuBar);
4
•1
Contenedores Superiores II
setSize() setVisible()
Construcción de un GUI. Pasos a seguir
• I.Crear un contenedor superior y obtener su contenedor intermedio • II. Seleccionar un gestor de esquemas para el contenedor intermedio • III. Crear los componentes adecuados • IV. Agregarlos al contenedor intermedio • V. Dimensionar el contenedor superior • VI. Mostrar el contenedor superior
5 7
Component Container
pack()
Window Frame
Panel Applet
Dialog
setTitle()
JDialoggetContentPane()
JFrame
getContentPane()
JApplet
getContentPane()
Contenedores Intermedios
Component
add() setLayout()
I. Crear un contenedor superior
• Hay tres clases contenedores superiores
– JFrame, JDialog, JApplet
• JFrame -> Aplicación
– Ventana de nivel superior con bordes y título
– setTitle(),getTitle(),setIconImage()
Container JComponent
• JApplet -> Applets •JDialog -> Diálogos
JPanel
JScrollPane
JSplitPane
JTabbedPane
JToolBar
– Métodos de instancia ...
void pack() Container getContentPane() void setContentPane(Container) void setJMenuBar(Menu)
6 8
•El contenedor más utilizado es JPanel
•2
II. Gestor de esquemas para cont. intermedio
• Determinan como encajan los componentes dentro de los contenedores
– Cada contenedortiene un gestor propio
• Por defecto JPanel tienen BorderLayout
IV. Agregar componentes al contenedor
• Se hace a través del método add() de los contenedores
JFrame f = new JFrame(“Un ejemplo”); Container cpane = f.getContetPane(); cpane.setLayout(new FlowLayout()); JButton bSi = new JButton(“SI”); JButton bNo = new JButton(“NO”); JLabel l = new JLabel(“Nombre”); cpane.add(l);cpane.add(bSi); cpane.add(bNo);
– Los gestores (son clases) existentes son:
• FlowLayout, BorderLayout, GridLayout, GriBagLayout, CardLayout, BoxLayout, ...
– Puede no utilizarse el gestor y colocar los elementos con setPosition() (no recomendable)
• Para asignar un gestor de esquemas
contenedor.setLayout(new FlowLayout())
9
– El orden es importante
• A un contenedor intermedio también se lepueden agregar otros contenedore intermedios
11
III. Crear componentes
• Cada componente viene determinado por una clase • Hay que crear un objeto de esa clase
JButton bSi = new JButton(“SI”); JButton bNo = new JButton(“NO”); JLabel l = new JLabel(“Nombre”); ...
V. Dimensionar el contenedor superior I
• Especifica el tamaño del contenedor superior • El método a llamar es
void...
Regístrate para leer el documento completo.