Está en la página 1de 7

Ejemplo de la Clase Persona

public class Persona


{
// Declaración de atributos
private String nombre;
private int edad;

// Constructor
public Persona(String nombre, int edad)
{
this.nombre = nombre;
this.edad = edad;
}

// Definición de métodos
public String getNombre ()
{
return nombre;
}

public int getEdad ()


{
return edad;
}

public boolean equals (Object o)


{
Persona p = (Persona) o;

if((nombre.equals(p.getNombre())) && (edad == p.getEdad()))


return true;
else
return false;
}

public String toString ()


{
return ("Nombre: " + nombre + "; Edad: " + edad);
}
}

Documento realizado por la alumna Marta Galán


Ejemplo de Ventana Gráfica en Swing (Gestión de Eventos)

import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Container;

import java.awt.event.WindowAdapter;
import java.awt.event.WindowListener;
import java.awt.event.WindowEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

import java.util.ArrayList;

public class Ventana extends JFrame


{
// Declaración de variables
private JTextField txtNombre;
private JTextField txtEdad;
private JButton btnGuardar;
private JButton btnSalir;

private ArrayList ar = new ArrayList();

// Definición del método main


public static void main (String s[])
{
new Ventana ("Ejemplo Examen");
}
Los components no se agregan
// Constructor directamente con add( ), se
public Ventana (String titulo) agregan a un container virtual
{
Container c = this.getContentPane();
c.setLayout(new BorderLayout());

JLabel lblTitulo = new JLabel("Ejemplo de Ventana"); Podemos modificar la fuente


lblTitulo.setFont(new Font("Arial", Font.BOLD, 14)); de los objetos de texto tanto
c.add(lblTitulo, BorderLayout.NORTH); en las etiquetas como en las
cajas de texto
JLabel lblNombre = new JLabel("Nombre: ");

txtNombre = new JTextField (10);


txtNombre.addKeyListener (new KeyAdapter()
{
public void keyPressed (KeyEvent e) Gestionamos el evento de esta caja
{ de texto. En este caso hacemos que
if(e.getKeyCode() == KeyEvent.VK_ENTER) cuando se pulse ENTER el foco
txtEdad.requestFocus(); avance a la siguiente caja de texto.
}
});

JLabel lblEdad = new JLabel("Edad: ");

Documento realizado por la alumna Marta Galán


También podemos cambiar el color de
fondo de la caja de texto así como el
txtEdad = new JTextField (10); color del texto que en ella escribamos. Si
txtEdad.setBackground (Color.BLACK); queremos también podemos hacer que el
txtEdad.setForeground (Color.YELLOW); texto quede centrado o justificado a
txtEdad.setHorizontalAlignment(JTextField.CENTER); izquierda o derecha. En este caso
quedaría de la siguiente forma:

txtEdad.addKeyListener (new KeyAdapter() 15


{
public void keyPressed (KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_ENTER)
{
Al pulsar ENTER podemos realizar cualquiera de las siguientes acciones
(teniendo en cuenta que se trata de la última caja de texto lo lógico es que al
pulsar ENTER sobre la caja de texto el resultado se el mismo que el que
obtendríamos al pulsar el botón GUARDAR):

// Almacenar la ocurrencia creada en un ArrayList


Para ello recogemos el contenido de las cajas de texto:
String nombre = txtNombre.getText();
int edad = Integer.parseInt(txtEdad.getText());
ar.add(new Persona(nombre, edad));

// Limpiamos las cajas de texto


txtNombre.setText("");
txtEdad.setText("");

// Asignamos el foco a la primera caja de texto


txtNombre.requestFocus();
}
}
});

JPanel pnlCentro = new JPanel();


pnlCentro.setLayout(new GridLayout(2,2));
pnlCentro.add (lblNombre); Creamos un Panel en el que añadiremos todos
pnlCentro.add (txtNombre); los componentes creados hasta ahora
pnlCentro.add (lblEdad);
pnlCentro.add (txtEdad);
c.add (pnlCentro, BorderLayout.CENTER);

btnGuardar = new JButton("Guardar el objeto");


btnGuardar.addActionListener (new ActionListener()
{
public void actionPerformed (ActionEvent e)
{
// Almacenamos la ocurrencia creada en un ArrayList
. . .
// Limpiamos las cajas de texto
. . .
// Asignamos el foco a la primera caja de texto
. . .
}
});

btnSalir = new JButton ("Salir de la Aplicación");


btnSalir.addActionListener (new ActionListener()
{
public void actionPerformed (ActionEvent e) Al pinchar sobre le botón “Salir”
{ finalizará la aplicación y
Ventana.this.dispose(); cerraremos la ventana
System.exit(0);
}
});

Documento realizado por la alumna Marta Galán


JPanel pnlSur = new JPanel();
pnlSur.setLayout (new FlowLayout());
pnlSur.add (btnGuardar);
pnlSur.add (btnSalir);
c.add (pnlSur, BorderLayout.SOUTH);

this.setTitle(titulo) ;
this.setResizable(false);
this.pack();
this.setVisible(true);
this.addWindowListener(new WindowAdapter()
{
public void windowClosing (WindowEvent e)
{
// Finalizamos la aplicación
Ventana.this.dispose();
System.exit(0);
}
});
}

Ejemplo de Ventana Gráfica utilizando Applet (Gestión de Eventos)


import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Container;

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Ventana extends JApplet


{
// Declaración de variables
private JTextField txtNombre; Cuando trabajamos con Applets el método main (String []) pasa a
private JTextField txtEdad; ser ahora el método init ( ). Las clases y constructores deberán
private JButton btnGuardar; ser públicas. El tamaño del frame se asigna ahora a través de la
private JButton btnSalir; página HTML. Por este motivo desaparecen los métodos de
asignación de tamaño (setSize( )) o ajuste (pack( )).
public void init()
{
Container c = this.getContentPane();
c.setLayout(new BorderLayout());

A partir de aquí el diseño de la ventana sería igual que antes. Sin embargo, tenemos que tener en
cuenta una novedad:
• Un applet puede recibir parámetros a través de la etiqueta <PARAM>.
• El método getParameter(String parametro) es el encargado de recoger estos parámetros.
• getParameter(String parametro) devuelve como resultado una cadena de caracteres.
Un ejemplo de utilización de parámetros sería el siguiente:
String nombre = getParameter("nombre");
Int edad = Integer.parseInt(getParameter("edad"));
}
}

Documento realizado por la alumna Marta Galán


El código HTML sería el siguiente:
<HTML>
<HEAD> Título de la Ventana
<TITLE>
Ejemplo Applet
</TITLE>
</HEAD>
<BODY>
<CENTER> Cabecera dentro de la página HTML
<H1> Ejemplo Applet </H1>
<BR/>
<APPLET code = "Ventana.class" width = "320" height = "100">
Salto de línea <PARAM name = "nombre" value = "Marta"/>
<PARAM name = "edad" value = "21"/>
</APPLET>
Tamaño del
</CENTER> Frame
</BODY> Parámetros
</HTML>

Otros Componentes para usar en Ventanas Gráficas

• Ejemplo JCheckBox
import javax.swing.JCheckBox;

Container c = this.getContentPane();
JCheckBox chb = new JCheckBox("Estudiante");
c.add(chb);

Gestión de Eventos:

chb.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(chb.isSelected())
mostrarMensaje("Check Activado", INFO);
}
});

Documento realizado por la alumna Marta Galán


• Ejemplo JRadioButton
import javax.swing.JRadioButton;
import javax.swing.ButtonGroup;

ButtonGroup grupo = new ButtonGroup();


rb1 = new JRadioButton("Hombre");
rb1.setSelected(true);
// Otra forma: rb1 = new JRadioButton("Hombre", true);
rb2 = new JRadioButton("Mujer");
// Otra forma: rb2 = new JRadioButton("Mujer", false);
grupo.add(rb1);
grupo.add(rb2);

JPanel pnlRadioBtn = new JPanel();


pnlRadioBtn.add(rb1);
pnlRadioBtn.add(rb2);

• Ejemplo JOptionPane
Para Gestionar los Eventos del JRadioButton anterior utilizaremos un ejemplo de
JOptionPane (clase utilizada para crear cualquier tipo de dialogo estándar para
mostrar o recoger información).
Relación (Tipo de diálogo – Método estático):
• Diálogo de Confirmación (Si/No/Cancelar) – showConfirmDialog
• Diálogo de Entrada - showInputDialog
• Diálogo de Mensaje - showMessageDialog
• Dialogo Personalizable - showOptionDialog

En este caso declararemos un método que nos permitirá mostrar mensajes


informativos:
rb1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{ Otras opciones podrían ser:
if(rb1.isSelected()) ERROR_MESSAGE
mostrarMensaje("Radio Hombre Activado", INFO); QUESTION_MESSAGE
} PLAIN_MESSAGE (Sin iconos)
}); WARNING_MESSAGE

private void mostrarMensaje (String msg, String titulo)


{
JOptionPane.showMessageDialog (this, msg, titulo, JOptionPane.INFORMATION_MESSAGE);
}

• Ejemplo JComboBox
import javax.swing.JComboBox;

Container c = this.getContentPane();
JComboBox cmbListado = new JComboBox ();
cmbListado.addItem(new Persona(nombre, edad));
c.add(cmbListado);

Documento realizado por la alumna Marta Galán


• Ejemplo JTabbedPane (pestañas)
import javax.swing.JTabbedPane;

Container c = this.getContentPane();
JTabbedPane tbp = new JTabbedPane();

JPanel panel1 = new JPanel(new BorderLayout());


JLabel etiqueta1 = new JLabel("HOLA");
etiqueta1.setHorizontalAlignment(JLabel.CENTER);
panel1.add(etiqueta1, BorderLayout.NORTH);
tbp.addTab("Pestaña 1", panel1);

JPanel panel2 = new JPanel(new BorderLayout());


JLabel etiqueta2 = new JLabel("ADIOS");
etiqueta2.setHorizontalAlignment(JLabel.CENTER);
panel2.add(etiqueta2, BorderLayout.NORTH);
tbp.addTab("Pestaña 2", panel2);

tbp.setSelectedIndex(0); Dentro de los paneles de cada pestaña


c.add(tbp);
añadiremos todos los componentes
gráficos que necesitemos para nuestra
aplicación.

Documento realizado por la alumna Marta Galán

También podría gustarte