Академический Документы
Профессиональный Документы
Культура Документы
1
Jerarquía de clases de Swing
Object
Button
Canvas
Graphics
Component Checkbox
Choice
Scrollbar
TextField TextArea Window Panel ScrollPane
FileDialog
2. La clase JComponent
Extiende de Container, la lcual a su vez hereda de la clase Component;
todas estas del paquete java.awt. Incluye eventos de y tiene soporte
para agregar o quitar componentes al contenedor.
3. Clase JFrame:
2
cambiaremos su tamaño inicial, con el método: setSize(int ancho,
int largo)
ventana.setSize(200,300);
ventana.setVisible(true);
C
ó import java.awt.*;
d import java.awt.event.*;
i import javax.swing.*;
g
o public class Window extends JFrame
: {
public Window()
{
Sthis.setSize(400,500);
e this.setTitle("Primer Aplicacion Swing");
this.setVisible(true);
} d
e
b
public static void main(String []args)
{e
new Window();
n
o JFrame jFrameWindow = new JFrame();
t
a jFrameWindow.setSize(400,500);
r jFrameWindow.setTitle("Segunda Aplicacion Swing");
jFrameWindow.setVisible(true);
} q
} u
e
3
JFrame
JPanel
JButton
JLabel
JFrame
containers
JPanel
JButton JLabel
4
Se puede especificar un comportamiento por defecto al cerrar la ventana
utilizando el método setDefaultCloseOperation. Y colocar los siguientes
valores:
DO_NOTHING_ON_CLOSE: No hará nada cuando el usuario le
de clic en el botón cerrar de la ventana.
HIDE_ON_CLOSE (por defecto): Ocultará la ventana y lo
removerá de la pantalla de usuario.
DISPOSE_ON_CLOSE: Oculta y destruye la ventana cuando el
usuario la cierra.
EXIT_ON_CLOSE: Termina la ejecución de la aplicación. Es
como si usáramos la sentencia System.exit(0).
5
ACTIVIDAD
1. Cree un JFrame con dos botones de comando.
Código:
add(label,BorderLayout.CENTER);
this.setSize(x,y);
}
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}
}
6
2. Cree un formulario con una imagen centrada.
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class JFrame03 extends JFrame{
int nveces=1;
JLabel label = new JLabel();
public JFrame03(String nombre, int x, int y){
super(nombre);
JButton button = new JButton("boton ",new
ImageIcon("images/duke.gif"));
button.setMnemonic('b'); // Alt+B o Alt+b
button.setFont(new Font("Comic sans", Font.PLAIN, 18));
setLayout(new FlowLayout());
add(button);
add(label);
setSize(x,y);
button.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent event){
7
3. Cree un JFrame que muestre un botón el cual al pulsarlo indique
cuantas veces.
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
int nveces=1;
JLabel label = new JLabel();
setLayout(new FlowLayout());
add(button);
add(label);
setSize(x,y);
import java.awt.*;
import javax.swing.*;
Button b1,b2,b3,b4;
JButton jb1,jb2,jb3;
setLayout(null);
9
//definiendo coordenadas botones Swing
jb1.setBounds(170,25,100,40);
jb2.setBounds(170,65,100,40);
jb3.setBounds(170,105,100,40);
this.setSize(x,y);
}
La clase JPanel
JPanel es un contenedor de propósito general para componentes de peso
ligero. Como todos los contenedores, utiliza un Controlador de
Distribución para posicionar y dimensionar sus componentes. Como todos
los componentes Swing, JPanel permite añadirle bordes y determinar si
utiliza el doble buffer para aumentar el rendimiento.
Los métodos básicos para trabajar con JPanel son:
10
Para crear un JPanel
Método Propósito
Crea un panel. Cuando está presente, el
JPanel() parámetro boolean determina la estrategia de
JPanel(boolean) buffer del panel. Un valor true indica doble
JPanel(LayoutManager) buffer. El parámetro LayoutManager
JPanel(LayoutManager, proporciona el controlador de distribución para el
boolean) nuevo panel. Si no se especifica, el panel utiliza
FlowLayout para distribuir sus componentes.
11
setLayout(LayoutManager) distribución para este panel. El controlador de
LayoutManager distribución es el responsable de posicionar
getLayout() los componentes dentro del panel de acuerdo
con alguna filosofía.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public MiPanel()
{
// Aquí añadimos controles al panel
// ...
// Adicionamos interface a los componentes
// ...
}
// --------------------------------------------------------------------Para eventos
// public void actionPerformed(ActionEvent e)
// {
// …
// }
}
2. La clase JButton
Clase Sumario
JButton Un botón común
JCheckBox Un checkbox típico
JRadioButton Un botón de radio de un grupo.
JMenuItem Un ítem de un menú.
JToggleButton Implementa la funcionalidad heredada de JCheckBox y
12
JRadioButton.
13
Ajuste fino de la apariencia del botón
Método o constructor Propósito
Selecciona u obtiene dónde debe situarse
void el contenido del botón. La clase
setHorizontalAlignment(int) AbstractButton permite uno de los
void setVerticalAlignment(int) siguientes valores para alineamiento
int getHorizontalAlignment() horizontal: LEFT, CENTER (por defecto),
int getVerticalAlignment() y LEFT. Para alineamiento vertical: TOP,
CENTER (por defecto), y BOTTOM.
Selecciona u obtiene dónde debería
void
situarse el texto del botón con respecto a
setHorizontalTextPosition(int)
la imagen. La clase AbstractButton
void
permite uno de los siguientes valores para
setVerticalTextPosition(int)
alineamineto horizontal: LEFT, CENTER
int
(por defecto), y LEFT. Para alineamiento
getHorizontalTextPosition()
vertical: TOP, CENTER (por defecto), y
int getVerticalTextPosition()
BOTTOM.
void setMargin(Insets) Selecciona u obtiene el número de pixels
Insets getMargin() entre el borde del botón y sus contenidos.
void
Selecciona u obtiene si el botón debería
setFocusPainted(boolean)
parecer diferente si obtiene el foco.
boolean isFocusPainted()
void
Selecciona u obtiene si el borde del botón
setBorderPainted(boolean)
debería dibujarse.
boolean isBorderPainted()
14
botones que tienen un estado on/off,
como los checkbox.
El código para este programa está dado por 2 clases: Formulario y MiPanel.
El código de la clase Formulario fue dado en anteriores páginas, sin
embargo, el código de MiPanel es el siguiente:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
Veamos :
15
JButton JButton
JFrame
n
JPanel: FlowLayout
JPanel: BorderLayout
JTextArea
c
16
OBJETIVOS
Comprender y utilizar los diferentes tipos de diseño en Swing.
1. Concepto:
17
a. FlowLayout
18
Formulario FlowLayout
b. BorderLayout
La composición BorderLayout (de borde) proporciona un esquema más
complejo de colocación de los Componentes en un panel. La
composición utiliza cinco zonas para colocar los Componentes sobre
ellas: Norte, Sur, Este, Oeste y Centro. Es el layout o composición que
se utilizan por defecto Frame y Dialog. El Norte ocupa la parte superior
del panel, el Este ocupa el lado derecho, Sur la zona inferior y Oeste el
lado izquierdo.
19
Diseñe la clase que implemente el BorderLayout.
import java.awt.BorderLayout;
import javax.swing.*;
20
ACTIVIDAD
Implemente la clase GridLayout de tal forma que se mueste de la
siguiente manera:
21