Documente Academic
Documente Profesional
Documente Cultură
Programacin 2
Captulo 7
Ejemplos:
Accin de Usuario Qu Sucede?
Presionar la tecla ENTER El cuadro de texto dispara
mientras el cursor est en un evento y le dice al
un cuadro de texto programa que la tecla
ENTER se presion
Clickear una opcin del La opcin del men dispara
men principal un evento y le dice al
programa que se seleccion
dicha opcin
Cerrar una ventana La ventana dispara un
presionando el botn X evento indicando que se
presion el botn de cierre
2. Bases de la Programacin
Orientada a Eventos
------------------
OK -----------------
-------------------
---------------
------------------
------------------
-----------------
3. Clases y paquetes GUI
Usaremos clases de Java para GUI, por ejemplo:
Usaremos clase JButton cuando necesitemos un botn
Usaremos clase Color cuando necesitemos especificar un
color
En el JDK 1.0, todas las clases GUI estaban en
Abstract Windowing Toolkit (AWT).
Eran poco ideales en trminos de portabilidad, as Sun
desarroll componentes GUI ms portables y los puso
en la biblioteca GUI llamada Swing
En la actualidad se usan ambas
El paquete para Swing es javax.swing
El paquete para AWT es java.awt y
java.awt.event
4. Un programa GUI de una ventana
Mtodos:
setTitle Muestra un ttulo en la ventana
setSize Establece el ancho y alto de la ventana en
pxeles
setLayout(new FlowLayout()) - Asigna un manejador
de layout especfico a la ventana
Este manejador determina la posicin de los componentes
setDefaultCloseOperation(EXIT_ON_CLOSE)
Habilita al botn X para que trabaje apropiadamente
5. La clase JFrame
Mtodos:
add Aade un componente especificado a la actual
ventana
Una vez aadido, permanece en la ventana durante toda la
ejecucin del programa
En el ejemplo, aunque el label se define localmente en el
mtodo createContents, permanecer con la ventana
despus que el mtodo finalice
setVisible(true) Muestra la ventana. Asegurarse
llamar a este mtodo al final (despus que hemos aadido
todos los componentes de la ventana)
setVisible(false) Oculta la ventana
6. Componentes de Java
Los principales:
JLabel, JTextField, JButton
JCheckBox, JRadioButton, JComboBox, JList, JTextArea
JMenuBar, JMenu, JMenuItem
Todos estn en el paquete javax.swing, as que debemos
importarlo
Todas las clases de estos componentes son descendientes de la
clase JComponent
La clase JComponent soporta varias caractersticas heredables
Contiene mtodos que manejan caractersticas de los
componentes, tales como:
Colores de foreground y background
Fuente de texto
Apariencia del borde
Tool tips
Foco
7. Componente JLabel
Descripcin del JLabel:
JLabel es un componente de slo lectura
El usuario puede leer el texto de la etiqueta, pero no
puede cambiarlo
JLabel es un componente de una simple lnea, no
acepta saltos
Cmo implementar una etiqueta?:
1. Instanciar un objeto JLabel: opcional
Sintaxis:
new <nombreInterface>() La clase interior annima
implementa la interface
{
<cuerpoClase>
}
Ejemplo:
nameBox.addActionListener(
new ActionListener()
ActionListener es una interface
{
public void actionPerformed(ActionEvent e)
{
...
13. Componente JButton
//************************************ add(xLabel);
add(xBox);
public FactorialButton() add(xfLabel);
{
add(xfBox);
setTitle("Factorial Calculator");
add(btn);
setSize(WIDTH, HEIGHT);
setLayout(new FlowLayout());
setDefaultCloseOperation( xBox.addActionListener(listener);
EXIT_ON_CLOSE); btn.addActionListener(listener);
createContents(); } // end createContents
setVisible(true);
} // end FactorialButton constructor
//*******************************
Factorial Button Program
//*********************************** if (x < 0)
{
// Inner class for event handling. xfBox.setText("undefined");
}
private class Listener implements else
ActionListener {
{ if (x == 0 || x == 1)
public void {
actionPerformed(ActionEvent e) xf = 1;
{ }
int x; // user entered number else
int xf; // x factorial {
xf = 1;
try for (int i=2; i<=x; i++)
{ {
x = Integer.parseInt( xf *= i;
xBox.getText()); }
} } // end else
catch (NumberFormatException nfe)
{ xfBox.setText(
x = -1; // indicates invalid x Integer.toString(xf));
} } // end else
} // end actionPerformed
} // end class Listener
When the user 1) clicks the button or 2) presses enter in the input text box,
the entered number's factorial displays in the output text box.
//************************************ add(xLabel);
add(xBox);
public FactorialButton() add(xfLabel);
{
add(xfBox);
setTitle("Factorial Calculator");
add(btn);
setSize(WIDTH, HEIGHT);
setLayout(new FlowLayout());
setDefaultCloseOperation( xBox.addActionListener(listener);
EXIT_ON_CLOSE); btn.addActionListener(listener);
createContents(); } // end createContents
setVisible(true);
} // end FactorialButton constructor
//*******************************
13. Componente JButton
xBox.addActionListener(listener);
14. Cuadro de Dilogo JOptionPane
Un cuadro de dilogo es una ventana simple que
contiene un mensaje. Ejemplo:
Ejemplo:
JOptionPane.showMessageDialog(null,
"Presionar el botn factorial para realizar clculo");
14. Cuadro de Dilogo JOptionPane
showMessageDialog es un mtodo de clase, as
que usaremos la notacin .dot
El primer argumento indica la posicin del cuadro de
dilogo. Si el argumento es null, aparece centrado
en toda la pantalla
La clase JOptionPane est en el paquete
javax.swing
14. Cuadro de Dilogo JOptionPane
La sintaxis completa es:
JOptionPane.showMessageDialog(<container>, <mensaje>);
Solucin?
Usaremos el mtodo getActionCommand
Retorna el comando de accin asociado con el
componente que dispar el evento
Tpicamente, es el texto que muestra el componente
Para un botn, es el texto que muestra
Ejemplo:
if (e.getActionCommand().equals("Factorial"))
...
16. Color
Panel de
contenido
//**************************************
JcomboBox
Gracias