Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA
-
Upload
adrian-espinosa -
Category
Software
-
view
70 -
download
2
Transcript of Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA
![Page 2: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/2.jpg)
Interfaces gráficas con Java Swing
![Page 3: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/3.jpg)
• Una interfaz gráfica con el usuario (GUI) es un mecanismo incorporado en las aplicaciones para hacer más amigable y entendible la interacción con el usuario
•Las GUIs se crean a partir de componentes, éstos permiten que el usuario interactúe mediante el ratón, teclado y otras formas de entrada.
Swing
![Page 4: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/4.jpg)
Estructura de las aplicaciones GUI
•Declarar una clase que herede de la superclase JFrame
•Declarar cada componente que hará parte de la GUI
•Dentro del método constructor, crear y organizar los componentes
•Declarar el método main
Swing
![Page 5: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/5.jpg)
Estructura de las aplicaciones GUI
•Declarar una clase que herede de la superclase JFrame
•Declarar cada componente que hará parte de la GUI
•Dentro del método constructor, crear y organizar los componentes
•Declarar el método main
Swing
![Page 6: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/6.jpg)
Swing
JFrame
Clase
Clase()
main()
![Page 7: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/7.jpg)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI extends JFrame {
public GUI()
{
super( "Título de la GUI" );
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
setSize( 275, 170 );
setVisible( true );
}
public static void main( String a[] )
{
GUI aplicacion = new GUI();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}
![Page 8: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/8.jpg)
Swing
JFrame
GUI
GUI()
main()
![Page 9: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/9.jpg)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI extends JFrame {
public GUI()
{
super( "Título de la GUI" );
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
setSize( 275, 170 );
setVisible( true );
}
public static void main( String a[] )
{
GUI aplicacion = new GUI();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}
Toda GUI debe heredar de la clase JFrame
![Page 10: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/10.jpg)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI extends JFrame {
public GUI()
{
super( "Título de la GUI" );
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
setSize( 275, 170 );
setVisible( true );
}
public static void main( String a[] )
{
GUI aplicacion = new GUI();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}
Se debe DECLARAR cada componente que hará
parte de la GUI
![Page 11: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/11.jpg)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI extends JFrame {
public GUI()
{
super( "Título de la GUI" );
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
setSize( 275, 170 );
setVisible( true );
}
public static void main( String a[] )
{
GUI aplicacion = new GUI();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}
Método constructor
CREAR cada componente y organizarlo de acuerdo a lo
que se requiere
![Page 12: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/12.jpg)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI extends JFrame {
public GUI()
{
super( "Título de la GUI" );
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
setSize( 275, 170 );
setVisible( true );
}
public static void main( String a[] )
{
GUI aplicacion = new GUI();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
}
}
Se crea un objeto de la aplicación
![Page 13: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/13.jpg)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI extends JFrame {
public GUI()
{
super( "Título de la GUI" );
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
setSize( 275, 170 );
setVisible( true );
}
public static void main( String a[] )
{
GUI aplicacion = new GUI();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}
Método constructor
Establecer el título de la ventana
![Page 14: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/14.jpg)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI extends JFrame {
public GUI()
{
super( "Título de la GUI" );
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
setSize( 275, 170 );
setVisible( true );
}
public static void main( String a[] )
{
GUI aplicacion = new GUI();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}
Crear el contenedor. Es el espacio que mantiene el contenido de la ventana
![Page 15: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/15.jpg)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI extends JFrame {
public GUI()
{
super( "Título de la GUI" );
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
setSize( 275, 170 );
setVisible( true );
}
public static void main( String a[] )
{
GUI aplicacion = new GUI();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}
Crear el contenedor. Es el espacio que mantiene el contenido de la ventana
![Page 16: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/16.jpg)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI extends JFrame {
public GUI()
{
super( "Título de la GUI" );
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
setSize( 275, 170 );
setVisible( true );
}
public static void main( String a[] )
{
GUI aplicacion = new GUI();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}
Crear el contenedor. Es el espacio que mantiene el contenido de la ventana
Contenedor
![Page 17: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/17.jpg)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI extends JFrame {
public GUI()
{
super( "Título de la GUI" );
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
setSize( 275, 170 );
setVisible( true );
}
public static void main( String a[] )
{
GUI aplicacion = new GUI();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
}
}
Se establecen las dimensiones de la
ventana
![Page 18: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/18.jpg)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI extends JFrame {
public GUI()
{
super( "Título de la GUI" );
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
setSize( 275, 170 );
setVisible( true );
}
public static void main( String a[] )
{
GUI aplicacion = new GUI();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
}
}
Algunos componentes que se pueden agregar al contenedor:
•JLabel
•JButton
•JTextField
•JCheckButtton
•JRadioButton
•JList
![Page 19: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/19.jpg)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI extends JFrame {
public GUI()
{
super( "Título de la GUI" );
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout() );
setSize( 275, 170 );
setVisible( true );
}
public static void main( String a[] )
{
GUI aplicacion = new GUI();
aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE);
}
}
Algunos componentes que se pueden agregar al contenedor:
•JLabel
•JButton
•JTextField
•JCheckButtton
•JRadioButton
•JList
Declarar
Crear y organizar
![Page 20: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/20.jpg)
JLabel (Etiqueta)
•Las etiquetas son componentes que permiten mostrar un mensaje, en texto o gráfico, de tal manera que el usuario tenga una idea más clara de cómo interactuar con la aplicación
Swing
Etiqueta
Etiqueta
![Page 21: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/21.jpg)
Swing
![Page 22: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/22.jpg)
JLabel (Etiqueta)
•Declarar la etiqueta
private JLabel etiqueta1;
•Crear la etiqueta
Se tienen varias formas
etiqueta1=new JLabel(“Texto de la etiqueta”);
contenedor.add(etiqueta1);
Swing
![Page 23: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/23.jpg)
JLabel (Etiqueta)
•Declarar la etiqueta
private JLabel etiqueta1;
•Crear la etiqueta
Se tienen varias formas
etiqueta1=new JLabel(“Texto de la etiqueta”);
contenedor.add(etiqueta1);
Swing
Inicialmente el contenedor está vacío
contenedor.add(etiqueta1);
![Page 24: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/24.jpg)
JLabel (Etiqueta)
•Declarar la etiqueta
private JLabel etiqueta1;
•Crear la etiqueta
Se tienen varias formas
etiqueta1=new JLabel(“Texto de la etiqueta”);
etiqueta1.setToolTipText( "Esta es la etiqueta 1" );
contenedor.add(etiqueta1);
Swing
![Page 25: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/25.jpg)
JLabel (Etiqueta)
•Declarar la etiqueta
private JLabel etiqueta1;
•Crear la etiqueta
Se tienen varias formas
etiqueta1=new JLabel(“Texto de la etiqueta”);
etiqueta1.setToolTipText( "Esta es la etiqueta 1" );
contenedor.add(etiqueta1);
Swing
El método setToolTipText permite establecer el texto que se mostrará en caso de que el usuario
pase el mouse por encima de la etiqueta
![Page 26: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/26.jpg)
JLabel (Etiqueta)
•Declarar la etiqueta
private JLabel etiqueta1;
•Crear la etiqueta
Se tienen varias formas
etiqueta1=new JLabel(“Texto de la etiqueta”);
etiqueta1.setToolTipText( "Esta es la etiqueta 1" );
contenedor.add(etiqueta1);
Swing
![Page 27: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/27.jpg)
Otra forma consiste en crear una etiqueta con icono
Icon imagen = new ImageIcon( "image1.gif" );
etiqueta2 = new JLabel( "Etiqueta con texto e icono“);
etiqueta2.setIcon(imagen);
etiqueta2.setHorizontalTextPosition(SwingConstants.RIGHT);
etiqueta2.setToolTipText( "Esta es la etiqueta2" );
contenedor.add( etiqueta2 );
Swing
![Page 28: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/28.jpg)
Otra forma consiste en crear una etiqueta con icono
Icon imagen = new ImageIcon( "image1.gif" );
etiqueta2 = new JLabel( "Etiqueta con texto e icono“);
etiqueta2.setIcon(imagen);
etiqueta2.setHorizontalTextPosition(SwingConstants.RIGHT);
etiqueta2.setToolTipText( "Esta es la etiqueta2" );
contenedor.add( etiqueta2 );
Swing
![Page 29: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/29.jpg)
Otra formaetiqueta3 = new JLabel();
etiqueta3.setText( "Etiqueta con icono y texto en parte inferior" );
etiqueta3.setIcon( imagen );
etiqueta3.setVerticalTextPosition( SwingConstants.BOTTOM );
etiqueta3.setToolTipText( "Esta es la etiqueta3" );
contenedor.add( etiqueta3 );
Swing
![Page 30: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/30.jpg)
Otra formaetiqueta3 = new JLabel();
etiqueta3.setText( "Etiqueta con icono y texto en parte inferior" );
etiqueta3.setIcon( imagen );
etiqueta3.setVerticalTextPosition( SwingConstants.BOTTOM );
etiqueta3.setToolTipText( "Esta es la etiqueta3" );
contenedor.add( etiqueta3 );
Swing
El texto debe aparecer debajo del icono
![Page 31: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/31.jpg)
Otra formaetiqueta3 = new JLabel();
etiqueta3.setText( "Etiqueta con icono y texto en parte inferior" );
etiqueta3.setIcon( imagen );
etiqueta3.setVerticalTextPosition( SwingConstants.BOTTOM );
etiqueta3.setToolTipText( "Esta es la etiqueta3" );
contenedor.add( etiqueta3 );
Swing
Las constantes de posición horizontal en SwingConstants son: LEFT, CENTER, RIGHT y
en la posición vertical son TOP, CENTER, BOTTOM
![Page 32: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/32.jpg)
Otra formaetiqueta3 = new JLabel();
etiqueta3.setText( "Etiqueta con icono y texto en parte inferior" );
etiqueta3.setIcon( imagen );
etiqueta3.setVerticalTextPosition( SwingConstants.BOTTOM );
etiqueta3.setToolTipText( "Esta es la etiqueta3" );
contenedor.add( etiqueta3 );
Swing
PruebaEtiqueta
![Page 33: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/33.jpg)
Métodos setFont y setForegroundetiqueta3 = new JLabel();
etiqueta3.setText( "Etiqueta con icono y texto en parte inferior" );
etiqueta3.setIcon( imagen );
etiqueta3.setFont(new Font("Arial", Font.BOLD, 14));
etiqueta3.setForeground(Color.black);
Swing
Se puede cambiar el tipo de fuente, tamaño y color
![Page 34: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/34.jpg)
JTextField y JPasswordField (Campos de texto)
•Los JTextField son áreas de una sola línea en las que el usuario puede introducir texto mediante el teclado o bien, el programa puede mostrar un resultado
Swing
Campo de texto en el que el programa
muestra un resultado
Campo de texto en el que el
usuario ingresadatos
![Page 35: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/35.jpg)
JTextField y JPasswordField (Campos de texto)
•Los JPasswordField son áreas en los que el texto se representa con simbolos * para ocultarlo de otros usuarios
Swing
JTextField
JPasswordField
![Page 36: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/36.jpg)
JTextField (Campo de texto)
•Declarar el campo
private JTextField campoTexto1;
•Crear el campo
Se tienen varias formas
campoTexto1=new JTextField(10);
contenedor.add(campoTexto1);
Swing
![Page 37: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/37.jpg)
JTextField (Campo de texto)
•Declarar el campo
private JTextField campoTexto1;
•Crear el campo
Se tienen varias formas
campoTexto1=new JTextField(10);
contenedor.add(campoTexto1);
Swing
Crea un campo de texto con 10 columnas
![Page 38: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/38.jpg)
JTextField (Campo de texto)
•Declarar el campo
private JTextField campoTexto2;
•Crear el campo
Se tienen varias formas
campoTexto2=new JTextField(“Escriba el texto aquí”);
contenedor.add(campoTexto2);
Swing
![Page 39: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/39.jpg)
JTextField (Campo de texto)
•Declarar el campo
private JTextField campoTexto2;
•Crear el campo
Se tienen varias formas
campoTexto2=new JTextField(“Escriba el texto aquí”);
contenedor.add(campoTexto2);
Swing
Crea un campo de texto con texto
predeterminado. El tamaño del campo estará dado por la
longitud del mensaje
![Page 40: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/40.jpg)
JTextField (Campo de texto)
•Declarar el campo
private JTextField campoTexto2;
•Crear el campo
Se tienen varias formas
campoTexto2=new JTextField(“Escriba el texto aquí”,20);
contenedor.add(campoTexto2);
Swing
Cuando se crea un campo de texto con texto predeterminado, el tamaño del
campo queda determinado por la longitud del mensaje, si se quiere establecer un valor diferente se puede utilizar este
constructor
![Page 41: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/41.jpg)
JTextField (Campo de texto)
•Declarar el campo
private JTextField campoTexto3;
•Crear el campo
Se tienen varias formas
campoTexto3=new JTextField(“Campo de texto no editable”,20);
campoTexto3.setEditable(false);
contenedor.add(campoTexto3);
Swing
![Page 42: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/42.jpg)
JTextField (Campo de texto)
•Declarar el campo
private JTextField campoTexto3;
•Crear el campo
Se tienen varias formas
campoTexto3=new JTextField(“Campo de texto no editable”,20);
campoTexto3.setEditable(false);
contenedor.add(campoTexto3);
Swing
Crea un campo de texto no editable, es decir, no se puede cambiar su contenido hasta que
se ejecute el comando
campoTexto3.setEditable(true);
![Page 43: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/43.jpg)
JPasswordField
•Declarar el campo
private JPasswordField campoContraseña;
•Crear el campo
Se tienen los mismos constructores que para JTextField
campoContraseña=new JPasswordField(6);
contenedor.add(campoContraseña);
Swing
Crea un campo para contraseña
![Page 44: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/44.jpg)
Eventos y metáfora del oyente
Java utiliza la metáfora del oyente para indicar que cualquier GUI está escuchando continuamente que suceda un evento
Los eventos que pueden ocurrir en una GUI son:
•Hacer clic sobre un botón
•Completar un campo de texto y hacer clic
•Hacer clic sobre una opción de un menú
•Ejecutar un comando con teclado
Swing
![Page 45: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/45.jpg)
Eventos y metáfora del oyente
Los oyentes se han clasificado de acuerdo al componente que genera los eventos y se tienen interfaces que ayudan a manejar tales eventos
ActionListener
MouseListener
ItemListener
KeyListener
Swing
![Page 46: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/46.jpg)
Swing
Tipo de evento Interfaz
ActionEvent ActionListener
MouseEvent MouseListener, MouseMotionListener
KeyEvent KeyListener
ItemEvent ItemListener
![Page 47: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/47.jpg)
Eventos y metáfora del oyente
Cada componente que pueda generar un evento, debe tener un manejador que indique las acciones que deben ocurrir si se genera un evento
Swing
![Page 48: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/48.jpg)
JTextField y JPasswordField (Campos de texto)
•Los campos de texto, a diferencia de las etiquetas, generan eventos!!!
•Cuando se escribe en el campo de texto y se da Enter, se genera un evento
•Concepto de FOCO: es el componente de la GUI que está actualmente siendo utilizado, cuando un campo de texto genera un evento, se dice que tiene el foco
Swing
![Page 49: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/49.jpg)
Recuerde los oyentes (interfaces)
ActionListener
MouseListener
ItemListener
KeyListener
Entre estos, un campo de texto genera un evento de acción (ActionEvent)
Utilizar un objeto manejador de una clase que implemente la interfaz ActionListener!!!
Swing
![Page 50: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/50.jpg)
Algunos métodos de las clases JTextField y JPasswordField
Swing
Método Descripción
setText(mensaje) Permite colocar un mensaje de tipo String en el campo
getText() Permite obtener el valor escrito en el campo
addActionListener(manejador) Adicionar el manejador de eventos al campo. El manejador es un objeto de una clase que implemente la interfaz ActionListener
![Page 51: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/51.jpg)
Para que una aplicación pueda capturar los eventos que allí se generen debe:
-Crear la clase que implemente la interfaz
-Crear un objeto de esa clase (manejador)
-Registrar el manejador en cada componente que pueda generar un evento del tipo considerado en la interfaz
Swing
![Page 52: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/52.jpg)
private class ManejadorCampoTexto implements ActionListener
{
public void actionPerformed( ActionEvent evento )
{
if ( evento.getSource() == campoTexto1 )
{
//Instrucciones que se deben ejecutar si la fuente del evento fue el campoTexto1
}
} // fin del método actionPerformed
} // fin de la clase interna privada ManejadorCampoTexto
![Page 53: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/53.jpg)
private class ManejadorCampoTexto implements ActionListener
{
public void actionPerformed( ActionEvent evento )
{
if ( evento.getSource() == campoTexto1 )
{
//Instrucciones que se deben ejecutar si la fuente del evento fue el campoTexto1
}
} // fin del método actionPerformed
} // fin de la clase interna privada ManejadorCampoTexto
La clase ManejadorCampoTexto
implementa ActionListener
![Page 54: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/54.jpg)
private class ManejadorCampoTexto implements ActionListener
{
public void actionPerformed( ActionEvent evento )
{
if ( evento.getSource() == campoTexto1 )
{
//Instrucciones que se deben ejecutar si la fuente del evento fue el campoTexto1
}
} // fin del método actionPerformed
} // fin de la clase interna privada ManejadorCampoTexto
Método que maneja un evento ActionEvent
![Page 55: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/55.jpg)
private class ManejadorCampoTexto implements ActionListener
{
public void actionPerformed( ActionEvent evento )
{
if ( evento.getSource() == campoTexto1 )
{
//Instrucciones que se deben ejecutar si la fuente del evento fue el campoTexto1
}
} // fin del método actionPerformed
} // fin de la clase interna privada ManejadorCampoTexto
Si la fuente del evento es el campoTexto1
![Page 56: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/56.jpg)
private class ManejadorCampoTexto implements ActionListener
{
public void actionPerformed( ActionEvent evento )
{
if ( evento.getSource() == campoTexto1 )
{
//Instrucciones que se deben ejecutar si la fuente del evento fue el campoTexto1
}
if ( evento.getSource() == campoTexto2 )
{
//Instrucciones que se deben ejecutar si la fuente del evento fue el campoTexto2
}
} // fin del método actionPerformed
} // fin de la clase interna privada ManejadorCampoTexto
![Page 57: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/57.jpg)
Para que una aplicación pueda capturar los eventos que allí se generen debe:
• Crear la clase que implemente la interfaz
Se puede colocar en el mismo archivo de la GUI
• Crear un objeto de esa clase (manejador)
ManejadorCampoTexto manejador = new ManejadorCampoTexto();
• Registrar el manejador en cada componente que pueda generar un evento del tipo considerado en la interfaz
campoTexto1.addActionListener( manejador );
campoTexto2.addActionListener( manejador );
campoTexto3.addActionListener( manejador );
campoContraseña.addActionListener( manejador );
Swing
![Page 58: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/58.jpg)
Para que una aplicación pueda capturar los eventos que alli se generen debe:
• Crear la clase que implemente la interfaz
Se puede colocar en el mismo archivo de la GUI
• Crear un objeto de esa clase (manejador)
ManejadorCampoTexto manejador = new ManejadorCampoTexto();
• Registrar el manejador en cada componente que pueda generar un evento del tipo considerado en la interfaz
campoTexto1.addActionListener( manejador );
campoTexto2.addActionListener( manejador );
campoTexto3.addActionListener( manejador );
campoContraseña.addActionListener( manejador );
Swing
PruebaCampoTexto
![Page 59: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/59.jpg)
Problema: Desarrolle un traductor EspañolInglés con dos campos de texto, de tal forma que cuando se escriba un palabra en uno de los campos y se de enter, aparezca la traducción en el otro campo de texto. Se deben considerar 5 palabras.
Swing
![Page 60: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/60.jpg)
Problema: Desarrolle una GUI con una etiqueta y un campo de texto. El contenido inicial de la etiqueta es el número 0. Cada vez que se de enter en el campo, se mostrará en la etiqueta la cantidad de veces que esto ha ocurrido. Utilice tamaño 40 para el texto en la etiqueta.
Swing
![Page 61: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/61.jpg)
Problema: Desarrolle una GUI con una etiqueta y un campo de texto. El contenido inicial de la etiqueta es el número 0. Cada vez que se de enter en el campo, se mostrará en la etiqueta la cantidad de veces que esto ha ocurrido. Utilice tamaño 40 para el texto en la etiqueta.
String.valueOf( int var ) : convierte un entero a String
Swing
![Page 62: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/62.jpg)
JButton (Botón)
•Es un componente en el que el usuario hace clic para desencadenar cierta acción
• Un programa puede utilizar varios tipos de botones
-Botones de comando
-Casillas de verificación
-Botones interruptores
-Botones de opción
Swing
![Page 63: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/63.jpg)
Swing
![Page 64: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/64.jpg)
JButton (Botón)
•Declarar el botón
private JButton botonSimple;
•Crear el campo
Se tienen varias formas
botonSimple=new JButton(“Botón simple”);
contenedor.add(botonSimple);
Swing
![Page 65: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/65.jpg)
JButton (Botón)
•Declarar el botón
private JButton botonSimple;
•Crear el campo
Se tienen varias formas
botonSimple=new JButton(“Botón simple”);
contenedor.add(botonSimple);
Botón que solo tiene texto
Swing
![Page 66: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/66.jpg)
JButton (Botón)
•Declarar el botón
private JButton botonSimple;
•Crear el campo
Se tienen varias formas
Icon image1 = new ImageIcon( "image6.gif" );
Icon image2 = new ImageIcon( "image7.gif" );
botonElegante = new JButton( "Botón elegante", image1 );
botonElegante.setRolloverIcon( image2 );
botonElegante.setToolTipText( "Muestra un mensaje" );
botonElegante.setMnemonic('M');
contenedor.add( botonElegante );
Swing
![Page 67: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/67.jpg)
JButton (Botón)
•Declarar el botón
private JButton botonSimple;
•Crear el campo
Se tienen varias formas
Icon image1 = new ImageIcon( "image6.gif" );
Icon image2 = new ImageIcon( "image7.gif" );
botonElegante = new JButton( "Botón elegante", image1 );
botonElegante.setRolloverIcon( image2 );
botonElegante.setToolTipText( "Muestra un mensaje" );
botonElegante.setMnemonic('M');
contenedor.add( botonElegante ); Imagen inicial del botón
Swing
![Page 68: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/68.jpg)
JButton (Botón)
•Declarar el botón
private JButton botonSimple;
•Crear el campo
Se tienen varias formas
Icon image1 = new ImageIcon( "image6.gif" );
Icon image2 = new ImageIcon( "image7.gif" );
botonElegante = new JButton( "Botón elegante", image1 );
botonElegante.setRolloverIcon( image2 );
botonElegante.setToolTipText( "Muestra un mensaje" );
botonElegante.setMnemonic('M');
contenedor.add( botonElegante );
Imagen cuando se pase el mouse por encima del
botón
Swing
![Page 69: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/69.jpg)
JButton (Botón)
•Declarar el botón
private JButton botonSimple;
•Crear el campo
Se tienen varias formas
Icon image1 = new ImageIcon( "image6.gif" );
Icon image2 = new ImageIcon( "image7.gif" );
botonElegante = new JButton( "Botón elegante", image1 );
botonElegante.setRolloverIcon( image2 );
botonElegante.setToolTipText( "Muestra un mensaje" );
botonElegante.setMnemonic('M');
contenedor.add( botonElegante );
Un nemómico es un atajo con teclado
Swing
![Page 70: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/70.jpg)
Se tienen varias formas
Icon image1 = new ImageIcon( "image6.gif" );
Icon image2 = new ImageIcon( "image7.gif" );
botonElegante = new JButton( "Botón elegante", image1 );
botonElegante.setRolloverIcon( image2 );
botonElegante.setToolTipText( "Muestra un mensaje" );
botonElegante.setMnemonic('M');
contenedor.add( botonElegante );
Botón inicial Botón cuando se pasa el mouse por encima
Swing
![Page 71: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/71.jpg)
JButton (Botón)
•Un botón (de comando) genera un evento ActionEvent cuando el usuario hace clic en él
Utilizar un objeto manejador de una clase que implemente la interfaz ActionListener!!!
Swing
![Page 72: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/72.jpg)
private class ManejadorBoton implements ActionListener {
// manejar evento de botón
public void actionPerformed( ActionEvent evento )
{
if (evento.getSource()==botonSimple)
JOptionPane.showMessageDialog( null, "Usted oprimió el boton simple");
if (evento.getSource()==botonElegante)
JOptionPane.showMessageDialog( null, "Usted oprimió el boton elegante");
}
} // fin de la clase interna privada ManejadorBoton
![Page 73: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/73.jpg)
private class ManejadorBoton implements ActionListener {
// manejar evento de botón
public void actionPerformed( ActionEvent evento )
{
if (evento.getSource()==botonSimple)
JOptionPane.showMessageDialog( null, "Usted oprimió el boton simple");
if (evento.getSource()==botonElegante)
JOptionPane.showMessageDialog( null, "Usted oprimió el boton elegante");
}
} // fin de la clase interna privada ManejadorBoton
PruebaBoton
![Page 74: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/74.jpg)
Problema: Modifique la GUI anterior de tal manera que se indique la cantidad de veces que se ha oprimido cada botón
Swing
![Page 75: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/75.jpg)
JButton (Botón)
•Método setEnabled()
Permite habilitar o deshabilitar un botón
nombreBoton.setEnabled(false);
Swing
Deshabilita el botón, no ejecuta el oyente
![Page 76: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/76.jpg)
JButton (Botón)
•Método setEnabled()
Permite habilitar o deshabilitar un botón
nombreBoton.setEnabled(false);
Swing
Deshabilita el botón, no ejecuta el oyente
PruebaBoton2
![Page 77: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/77.jpg)
Problema: Desarrolle una GUI que tenga dos botones. Inicialmente uno de los dos está deshabilitado pero se puede habilitar si se hace clic en el segundo botón. Si esto ocurre, el botón dos se deshabilita y solo se podrá habilitar si se hace clic en el botón uno.
Swing
![Page 78: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/78.jpg)
Problema: Desarrolle el traductor con botones. Un botón para traducir a inglés y otro para alemán
Swing
![Page 79: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/79.jpg)
JCheckBox (Casilla de verificación)
Swing
En un checkbox, se tienen varias casillas, se pueden
marcar todas
![Page 80: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/80.jpg)
JCheckBox (Casilla de verificacion)
•Un ChekBox genera un evento ItemEvent cuando el usuario hace clic en él
Utilizar un objeto manejador de una clase que implemente la interfaz ItemListener!!!
Swing
![Page 81: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/81.jpg)
JChekbox (Casilla de verificación)
•Declarar
private JChekBox negrita, cursiva;
•Crear
negrita = new JCheckBox( "Negrita" );
contenedor.add( negrita );
cursiva = new JCheckBox( "Cursiva" );
contenedor.add( cursiva );
Swing
![Page 82: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/82.jpg)
JChekbox (Casilla de verificacion)
•Declarar
private JChekBox negrita, cursiva;
•Crear
negrita = new JCheckBox( "Negrita" );
contenedor.add( negrita );
cursiva = new JCheckBox( "Cursiva" );
contenedor.add( cursiva );
ManejadorCasillaVerificacion manejador = new ManejadorCasillaVerificacion();
negrita.addItemListener( manejador );
cursiva.addItemListener( manejador );
Swing
Se adiciona el manejador, un objeto de una clase que implementa la interfaz ItemListener, por medio del
método addItemListener
![Page 83: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/83.jpg)
private class ManejadorCasillaVerificacion implements ItemListener {
private int valNegrita = Font.PLAIN;
private int valCursiva = Font.PLAIN;
// responder a eventos de casilla de verificación
public void itemStateChanged( ItemEvent evento )
{
// procesar eventos de casilla de verificación negrita
if ( evento.getSource() == negrita )
valNegrita = negrita.isSelected() ? Font.BOLD : Font.PLAIN;
// procesar eventos de casilla de verificación cursiva
if ( evento.getSource() == cursiva )
valCursiva = cursiva.isSelected() ? Font.ITALIC : Font.PLAIN;
// establecer tipo de letra del campo de texto
campo.setFont( new Font( "Serif", valNegrita + valCursiva, 14 ) );
} // fin del método itemStateChanged
} // fin de la clase interna privada ManejadorCasillaVerificacion
![Page 84: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/84.jpg)
private class ManejadorCasillaVerificacion implements ItemListener {
private int valNegrita = Font.PLAIN;
private int valCursiva = Font.PLAIN;
// responder a eventos de casilla de verificación
public void itemStateChanged( ItemEvent evento )
{
// procesar eventos de casilla de verificación negrita
if ( evento.getSource() == negrita )
valNegrita = negrita.isSelected() ? Font.BOLD : Font.PLAIN;
// procesar eventos de casilla de verificación cursiva
if ( evento.getSource() == cursiva )
valCursiva = cursiva.isSelected() ? Font.ITALIC : Font.PLAIN;
// establecer tipo de letra del campo de texto
campo.setFont( new Font( "Serif", valNegrita + valCursiva, 14 ) );
} // fin del método itemStateChanged
} // fin de la clase interna privada ManejadorCasillaVerificacion
Se implementa la interfaz ItemListener
![Page 85: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/85.jpg)
private class ManejadorCasillaVerificacion implements ItemListener {
private int valNegrita = Font.PLAIN;
private int valCursiva = Font.PLAIN;
// responder a eventos de casilla de verificación
public void itemStateChanged( ItemEvent evento )
{
// procesar eventos de casilla de verificación negrita
if ( evento.getSource() == negrita )
valNegrita = negrita.isSelected() ? Font.BOLD : Font.PLAIN;
// procesar eventos de casilla de verificación cursiva
if ( evento.getSource() == cursiva )
valCursiva = cursiva.isSelected() ? Font.ITALIC : Font.PLAIN;
// establecer tipo de letra del campo de texto
campo.setFont( new Font( "Serif", valNegrita + valCursiva, 14 ) );
} // fin del método itemStateChanged
} // fin de la clase interna privada ManejadorCasillaVerificacion
El evento ItemEvent se maneja por medio del
método itemStateChanged
![Page 86: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/86.jpg)
private class ManejadorCasillaVerificacion implements ItemListener {
private int valNegrita = Font.PLAIN;
private int valCursiva = Font.PLAIN;
// responder a eventos de casilla de verificación
public void itemStateChanged( ItemEvent evento )
{
// procesar eventos de casilla de verificación negrita
if ( evento.getSource() == negrita )
valNegrita = negrita.isSelected() ? Font.BOLD : Font.PLAIN;
// procesar eventos de casilla de verificación cursiva
if ( evento.getSource() == cursiva )
valCursiva = cursiva.isSelected() ? Font.ITALIC : Font.PLAIN;
// establecer tipo de letra del campo de texto
campo.setFont( new Font( "Serif", valNegrita + valCursiva, 14 ) );
} // fin del método itemStateChanged
} // fin de la clase interna privada ManejadorCasillaVerificacion
PruebaCasillaVerificacion
![Page 87: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/87.jpg)
JRadioButton (Botones de opción)
Swing
En un RadioButton, solo una de las opciones se puede seleccionar al
tiempo
![Page 88: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/88.jpg)
JRadioButton (Botones de opción)
•Un RadioButton genera un evento ItemEvent cuando el usuario hace clic en él
Utilizar un objeto manejador de una clase que implemente la interfaz ItemListener!!!
Swing
![Page 89: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/89.jpg)
JRadioButton (Botones de opción)
•Declarar
private JRadioButton botonSimple, botonNegrita…
private ButtonGruop grupoBotonesOpcion;
Swing
Como existe una relación entre los botones (no se puede seleccionar más de un botón al tiempo), se
debe agrupar en un componente ButtonGroup
Después de crear cada RadioButton, se deben adicionar a un único ButtonGroup
![Page 90: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/90.jpg)
JRadioButton (Botones de opción)
•Crear botonSimple = new JRadioButton( "Simple", true );
contenedor.add( botonSimple );
botonNegrita = new JRadioButton( "Negrita", false );
contenedor.add( botonNegrita );
botonCursiva = new JRadioButton( "Cursiva", false );
contenedor.add( botonCursiva );
botonNegritaCursiva = new JRadioButton( "Negrita/Cursiva", false );
contenedor.add( botonNegritaCursiva );
Swing
![Page 91: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/91.jpg)
JRadioButton (Botones de opción)
•Crear botonSimple = new JRadioButton( "Simple", true );
contenedor.add( botonSimple );
botonNegrita = new JRadioButton( "Negrita", false );
contenedor.add( botonNegrita );
botonCursiva = new JRadioButton( "Cursiva", false );
contenedor.add( botonCursiva );
botonNegritaCursiva = new JRadioButton( "Negrita/Cursiva", false );
contenedor.add( botonNegritaCursiva );
Swing
Se puede indicar cuál de las opciones estará activa en el
momento de iniciar la aplicación
![Page 92: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/92.jpg)
JRadioButton (Botones de opción)
•Crear botonSimple = new JRadioButton( "Simple", true );
contenedor.add( botonSimple );
botonNegrita = new JRadioButton( "Negrita", false );
contenedor.add( botonNegrita );
botonCursiva = new JRadioButton( "Cursiva", false );
contenedor.add( botonCursiva );
botonNegritaCursiva = new JRadioButton( "Negrita/Cursiva", false );
contenedor.add( botonNegritaCursiva );
ManejadorBotonOpcion manejador = new ManejadorBotonOpcion();
botonSimple.addItemListener(manejador);
botonNegrita.addItemListener(manejador);
botonCursiva.addItemListener(manejador);
botonNegritaCursiva.addItemListener(manejador);
Swing
Se adiciona el oyente a cada RadioButton
![Page 93: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/93.jpg)
botonSimple = new JRadioButton( "Simple", true );
contenedor.add( botonSimple );
botonNegrita = new JRadioButton( "Negrita", false );
contenedor.add( botonNegrita );
botonCursiva = new JRadioButton( "Cursiva", false );
contenedor.add( botonCursiva );
botonNegritaCursiva = new JRadioButton( "Negrita/Cursiva", false );
contenedor.add( botonNegritaCursiva );
ManejadorBotonOpcion manejador = new ManejadorBotonOpcion();
botonSimple.addItemListener(manejador);
botonNegrita.addItemListener(manejador);
botonCursiva.addItemListener(manejador);
botonNegritaCursiva.addItemListener(manejador);
grupoBotonesOpcion = new ButtonGroup();
grupoBotonesOpcion.add( botonSimple );
grupoBotonesOpcion.add( botonNegrita );
grupoBotonesOpcion.add( botonCursiva );
grupoBotonesOpcion.add( botonNegritaCursiva );
Se crea el ButtonGroup y se le adicionan los RadioButton
![Page 94: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/94.jpg)
botonSimple = new JRadioButton( "Simple", true );
contenedor.add( botonSimple );
botonNegrita = new JRadioButton( "Negrita", false );
contenedor.add( botonNegrita );
botonCursiva = new JRadioButton( "Cursiva", false );
contenedor.add( botonCursiva );
botonNegritaCursiva = new JRadioButton( "Negrita/Cursiva", false );
contenedor.add( botonNegritaCursiva );
ManejadorBotonOpcion manejador = new ManejadorBotonOpcion();
botonSimple.addItemListener(manejador);
botonNegrita.addItemListener(manejador);
botonCursiva.addItemListener(manejador);
botonNegritaCursiva.addItemListener(manejador);
grupoBotonesOpcion = new ButtonGroup();
grupoBotonesOpcion.add( botonSimple );
grupoBotonesOpcion.add( botonNegrita );
grupoBotonesOpcion.add( botonCursiva );
grupoBotonesOpcion.add( botonNegritaCursiva );
PruebaBotonOpcion
Ver Oyente
![Page 95: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/95.jpg)
JComboBox (Cuadro combinado)
•Un ComboBox, conocido como lista desplegable proporciona una lista de elementos de la cual el usuario puede seleccionar solamente uno
•Los objetos ComboBox generan eventos ItemEvent cuando el usuario hace clic en una de las opciones de la lista
Utilizar un objeto manejador de una clase que implemente la interfaz ItemListener!!!
Swing
![Page 96: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/96.jpg)
JComboBox (Cuadro combinado)
•Declarar
private JComboBox cuadroCombImagenes;
private String nombres[] = { "image3.gif", "image10.gif",
"image5.gif", "image8.gif" };
Swing
![Page 97: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/97.jpg)
JComboBox (Cuadro combinado)
•Declarar
private JComboBox cuadroCombImagenes;
private String nombres[] = { "image3.gif", "image10.gif",
"image5.gif", "image8.gif" };
Swing
Se debe crear una arreglo con los datos que
aparecerán en la lista
![Page 98: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/98.jpg)
JComboBox (Cuadro combinado)
•Crear
cuadroCombImagenes = new JComboBox( nombres );
cuadroCombImagenes.setMaximumRowCount(4);
Swing
Se pasa al constructor el arreglo con los datos que
aparecerán en la lista
![Page 99: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/99.jpg)
JComboBox (Cuadro combinado)
•Crear
cuadroCombImagenes = new JComboBox( nombres );
cuadroCombImagenes.setMaximumRowCount(4);
Swing
Se establece la cantidad máxima de ítems que puede tener la lista sin necesitar la barra de desplazamiento
![Page 100: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/100.jpg)
JComboBox (Cuadro combinado)
•Crear
cuadroCombImagenes = new JComboBox( nombres );
cuadroCombImagenes.setMaximumRowCount(2);
Swing
Aparece la barra si se coloca el valor en 2 y hay 4
elementos en la lista
![Page 101: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/101.jpg)
private class ManejadorCombo implements ItemListener {
public void itemStateChanged( ItemEvent evento )
{
if ( evento.getStateChange() == ItemEvent.SELECTED ){
int index=cuadroCombImagenes.getSelectedIndex();
System.out.println("Seleccionó el item " + index + " en la lista");
etiqueta.setIcon( iconos[index ] );
}
}
}
![Page 102: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/102.jpg)
private class ManejadorCombo implements ItemListener {
public void itemStateChanged( ItemEvent evento )
{
if ( evento.getStateChange() == ItemEvent.SELECTED ){
int index=cuadroCombImagenes.getSelectedIndex();
System.out.println("Seleccionó el item " + index + " en la lista");
etiqueta.setIcon( iconos[index ] );
}
}
} Método que permite conocer que un ítem cambio de estado
![Page 103: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/103.jpg)
private class ManejadorCombo implements ItemListener {
public void itemStateChanged( ItemEvent evento )
{
if ( evento.getStateChange() == ItemEvent.SELECTED ){
int index=cuadroCombImagenes.getSelectedIndex();
System.out.println("Seleccionó el item " + index + " en la lista");
etiqueta.setIcon( iconos[index ] );
}
}
}
Método del ComboBox que permite saber cuál de los ítems fue seleccionado.
Retorna el índice (comenzando en 0)
![Page 104: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/104.jpg)
private class ManejadorCombo implements ItemListener {
public void itemStateChanged( ItemEvent evento )
{
if ( evento.getStateChange() == ItemEvent.SELECTED ){
int index=cuadroCombImagenes.getSelectedIndex();
System.out.println("Seleccionó el item " + index + " en la lista");
etiqueta.setIcon( iconos[index ] );
}
}
}
PruebaCuadroComb
![Page 105: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/105.jpg)
JList (listas de selección)
•Una lista de selección permite al usuario seleccionar uno (Listas de selección simple) o varios elementos de una lista (Listas de selección múltiple)
•Las listas de selección se combinan con la clase JScrollPane
Swing
JList
JScrollPane
![Page 106: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/106.jpg)
•Una lista de selección genera eventos ListSelectionEvent cuando el usuario hace clic en una de las opciones de la lista
Utilizar un objeto manejador de una clase que implemente la interfaz ListSelectionListener!!!
Para adicionar este escucha se debe utilizar el método addListSelectionListener
Swing
![Page 107: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/107.jpg)
JList (listas de selección)
•Declarar
private JList listaColores;
private JScrollPane scroll;
private final String nombresColores[] = { "Negro", "Azul", "Cyan", "Gris oscuro“,
"Gris", "Verde", "Gris claro", "Magenta", "Naranja", "Rosa", "Rojo", "Blanco", "Amarillo" };
Swing
Se debe crear un arreglo con los datos que
aparecerán en la lista
![Page 108: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/108.jpg)
JList (listas de selección)
•Crear
listaColores = new JList( nombresColores );
listaColores.setVisibleRowCount( 5 );
listaColores.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
scroll = new JScrollPane(listaColores);
contenedor.add(scroll);
Swing
![Page 109: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/109.jpg)
JList (listas de selección)
•Crear
listaColores = new JList( nombresColores );
listaColores.setVisibleRowCount( 5 );
listaColores.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
scroll = new JScrollPane(listaColores);
contenedor.add(scroll);
Swing
Se pasa al constructor la lista con los nombres
Se especifica que es una lista de selección simpleSe adiciona la lista
a un scroll
![Page 110: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/110.jpg)
JList (listas de selección)
•Crear
listaColores = new JList( nombresColores );
listaColores.setVisibleRowCount( 5 );
listaColores.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
scroll = new JScrollPane(listaColores);
contenedor.add(scroll);
ManejadorLista manejador = new ManejadorLista();
listaColores.addListSelectionListener(manejador);
Swing
![Page 111: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/111.jpg)
private class ManejadorLista implements ListSelectionListener {
public void valueChanged( ListSelectionEvent evento )
{
int index=listaColores.getSelectedIndex();
contenedor.setBackground(colores[index] );
}
}
Se implementa el método valueChange de la interfaz ListSelectionListener
![Page 112: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/112.jpg)
private class ManejadorLista implements ListSelectionListener {
public void valueChanged( ListSelectionEvent evento )
{
int index=listaColores.getSelectedIndex();
contenedor.setBackground(colores[index] );
}
}
PruebaLista
![Page 113: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/113.jpg)
JList (listas de selección)
Swing
JList de selección múltiple
JList de selección
simple
![Page 114: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/114.jpg)
JList (listas de selección)
•Crear
listaColores = new JList( nombresColores );
listaColores.setVisibleRowCount( 5 );
listaColores.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
scroll1 = new JScrollPane(listaColores);
contenedor.add(scroll1);
Swing
Se especifica que se permite
selección múltiple
![Page 115: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/115.jpg)
public class ManejadorMultiple implements ActionListener
{
public void actionPerformed( ActionEvent evento )
{
listaCopia.setListData( listaColores.getSelectedValues() );
}
}
Se captura el evento por medio del botón
Retorna los valores de listaColores seleccionados
Establecer los datos que aparecerán en la lista
![Page 116: Descripción y ejempos de la librerias Swing para la creacion de GUI JAVA](https://reader034.fdocuments.ec/reader034/viewer/2022050800/58775dc01a28ab4e4f8b5f31/html5/thumbnails/116.jpg)
public class ManejadorMultiple implements ActionListener
{
public void actionPerformed( ActionEvent evento )
{
listaCopia.setListData( listaColores.getSelectedValues() );
}
}
PruebaSeleccionMultiple
Explicar ancho y alto de la lista que no tiene elementos