Suscribirse al Feed
11Dic

[código] GUIs en Java (Labels, Botones, Chekbox y Campos de texto)

En esta sección se presentan varios de los componentes de Java para la creación de interfaces gráficas de usuario. Los componentes de Swing pueden personalizarse para asemejarse a la apariencia de la plataforma computacional en la que se ejecute el programa, o pueden usar la apariencia visual de Java para brindar una interfaz idéntica en cualquier Sistema Operativo. Esta sección ilustra la jerarquía javax.swing, y se centra en el uso de labels, botones, casillas de verificación, y campos de texto.

La clase JLabel


// Demostración de la clase JLabel.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class PruebaEtiqueta extends JFrame {
   private JLabel etiqueta1, etiqueta2, etiqueta3;

   // configurar GUI
   public PruebaEtiqueta()
   {
      super( "Prueba de JLabel" );

      // obtener panel de contenido y establecer su esquema
      Container contenedor = getContentPane();
      contenedor.setLayout( new FlowLayout() );

      // constructor de JLabel con un argumento cadena
      etiqueta1 = new JLabel( "Etiqueta con texto" );
      etiqueta1.setToolTipText( "Esta es la etiqueta1" );
      contenedor.add( etiqueta1 );

      // constructor de JLabel con argumentos cadena, Icono y alineación
      Icon quake = new ImageIcon( "quake.gif" );
      etiqueta2 = new JLabel( "Etiqueta con texto e icono", quake,
         SwingConstants.LEFT );
      etiqueta2.setToolTipText( "Esta es la etiqueta2" );
      contenedor.add( etiqueta2 );

      // constructor de JLabel sin argumentos
      etiqueta3 = new JLabel();
      etiqueta3.setText( "Etiqueta con icono y texto en parte inferior" );
      etiqueta3.setIcon( quake );
      etiqueta3.setHorizontalTextPosition( SwingConstants.CENTER );
      etiqueta3.setVerticalTextPosition( SwingConstants.BOTTOM );
      etiqueta3.setToolTipText( "Esta es la etiqueta3" );
      contenedor.add( etiqueta3 );

      setSize( 275, 170 );
      setVisible( true );

   } // fin del constructor

   public static void main( String args[] )
   {
      JFrame.setDefaultLookAndFeelDecorated(true);
      PruebaEtiqueta aplicacion = new PruebaEtiqueta();
      aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   }

} // fin de la clase PruebaEtiqueta

Descargar código fuente

La clase JTextField


// Demostración de la clase JTextField.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class PruebaCampoTexto extends JFrame
{
   private JTextField campoTexto1, campoTexto2, campoTexto3;
   private JPasswordField campoContrasenia;

   // configurar GUI
   public PruebaCampoTexto()
   {
      super( "Prueba de JTextField y JPasswordField" );

      Container contenedor = getContentPane();
      contenedor.setLayout( new FlowLayout() );

      // crear campo de texto con tamaño predeterminado
      campoTexto1 = new JTextField( 10 );
      contenedor.add( campoTexto1 );

      // crear campo de texto con texto predeterminado
      campoTexto2 = new JTextField( "Escriba el texto aquí" );
      contenedor.add( campoTexto2 );

      // crear campo de texto con texto predeterminado,
      // 20 elementos visibles y sin manejador de eventos
      campoTexto3 = new JTextField( "Campo de texto no editable", 20 );
      campoTexto3.setEditable( false );
      campoTexto3.setToolTipText("Ésta mierda no se edita");

      contenedor.add( campoTexto3 );

      // crear campo de contraseña con texto predeterminado
      campoContrasenia = new JPasswordField( "Texto oculto" );
      contenedor.add( campoContrasenia );

      // registrar manejadores de eventos
      ManejadorCampoTexto manejador = new ManejadorCampoTexto();
      campoTexto1.addActionListener( manejador );
      campoTexto2.addActionListener( manejador );
      campoTexto3.addActionListener( manejador );
      campoContrasenia.addActionListener( manejador );

      setSize( 325, 100 );
      setVisible( true );

   } // fin del constructor de PruebaCampoTexto

   public static void main( String args[] )
   {
      JFrame.setDefaultLookAndFeelDecorated(true);
      PruebaCampoTexto aplicacion = new PruebaCampoTexto();
      aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   }

   // clase interna privada para el manejo de eventos
   private class ManejadorCampoTexto implements ActionListener
   {
      // procesar eventos de campo de texto
      public void actionPerformed( ActionEvent evento )
      {
         String cadena = "";

         // el usuario oprimió Intro en objeto JTextField campoTexto1
         if ( evento.getSource() == campoTexto1 )
            cadena = "campoTexto1: " + evento.getActionCommand();

         // el usuario oprimió Intro en objeto JTextField campoTexto2
         else if ( evento.getSource() == campoTexto2 )
            cadena = "campoTexto2: " + evento.getActionCommand();

         // el usuario oprimió Intro en objeto JTextField campoTexto3
         else if ( evento.getSource() == campoTexto3 )
            cadena = "campoTexto3: " + evento.getActionCommand();

         // el usuario oprimió Intro en objeto JTextField campoContrasenia
         else if ( evento.getSource() == campoContrasenia ) {
            cadena = "campoContrasenia: " +
               new String( campoContrasenia.getPassword() );
         }

         JOptionPane.showMessageDialog( null, cadena,"Resultados",JOptionPane.CANCEL_OPTION);

      } // fin del método actionPerformed

   } // fin de la clase interna privada ManejadorCampoTexto

} // fin de la clase PruebaCampoTexto

Descargar código fuente

La clase JButton

// Creación de objetos JButton.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class PruebaBoton extends JFrame
{
   private JButton botonSimple, botonElegante;

   // configurar GUI
   public PruebaBoton()
   {
      super( "Prueba de botones" );

      // obtener panel de contenido y establecer su esquema
      Container contenedor = getContentPane();
      contenedor.setLayout( new FlowLayout() );

      // crear botones
      botonSimple = new JButton( "Botón simple" );
      contenedor.add( botonSimple );

      Icon quake1 = new ImageIcon( "quake1.png" );
      Icon quake2 = new ImageIcon( "quake2.png" );
      botonElegante = new JButton( "Botón elegante", quake1 );
      botonElegante.setRolloverIcon( quake2 );
      contenedor.add( botonElegante );

      // crear una instancia de la clase interna ManejadorBoton
      // a usar para el manejo de eventos de botones
      ManejadorBoton manejador = new ManejadorBoton();
      botonElegante.addActionListener( manejador );
      botonSimple.addActionListener( manejador );

      setSize( 300, 100 );
      setVisible( true );

   } // fin del constructor de PruebaBoton

   public static void main( String args[] )
   {
      JFrame.setDefaultLookAndFeelDecorated(true);
      JDialog.setDefaultLookAndFeelDecorated(true);
      PruebaBoton aplicacion = new PruebaBoton();
      aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   }

   // clase interna para el manejo de eventos de botón
   private class ManejadorBoton implements ActionListener
   {
      // manejar evento de botón
      public void actionPerformed( ActionEvent evento )
      {
         JOptionPane.showMessageDialog( PruebaBoton.this,
            "Usted oprimió: " + evento.getActionCommand() );
      }

   } // fin de la clase interna privada ManejadorBoton

} // fin de la clase PruebaBoton

Descargar código fuente

La clase JCheckBox

// Creación de botones JCheckBox.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class PruebaCasillaVerificacion extends JFrame
{
   private JTextField campo;
   private JCheckBox negrita, cursiva;

   // configurar GUI
   public PruebaCasillaVerificacion()
   {
      super( "Prueba de JCheckBox" );

      // obtener panel de contenido y establecer su esquema
      Container contenedor = getContentPane();
      contenedor.setLayout( new FlowLayout() );

      // configurar objeto JTextField y establecer su tipo de letra
      campo = new JTextField( "Observe el cambio en el estilo de tipo de letra", 25 );
      campo.setFont( new Font( "Serif", Font.PLAIN, 14 ) );
      contenedor.add( campo );

      // crear objetos casilla de verificación
      negrita = new JCheckBox( "Negrita" );
      contenedor.add( negrita );     

      cursiva = new JCheckBox( "Cursiva" );
      contenedor.add( cursiva );

      // registrar componentes de escucha para los objetos JCheckBox
      ManejadorCasillaVerificacion manejador = new ManejadorCasillaVerificacion();
      negrita.addItemListener( manejador );
      cursiva.addItemListener( manejador );

      setSize( 300, 100 );
      setVisible( true );

   } // fin del constructor de PruebaCasillaVerificacion

   public static void main( String args[] )
   {
      JFrame.setDefaultLookAndFeelDecorated(true);
      PruebaCasillaVerificacion aplicacion = new PruebaCasillaVerificacion();
      aplicacion.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
   }

   // clase interna privada para manejo de eventos de ItemListener
   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

} // fin de la clase PruebaCasillaVerificacion

Descargar código fuente

Etiquetas: ,
Los ejercicios utilizados en este post están basados en ejemplos del libro Cómo programar en Java de Deitel, y por lo tanto están bajo la licencia que esta editorial disponga.

33 Comentarios para “[código] GUIs en Java (Labels, Botones, Chekbox y Campos de texto)”

« 1 2 3 4 5 Todos

  1. a gravatar
  2. a gravatar

    jkmilo dice:  


    upa gracias eso ta interesante gracias de nuevo :)

  3. a gravatar

    Dania dice:  


    hola…disculpa que te moleste …pero queria preguntar que hay que hacer para seleccionar y guardar más de una opción en un jcomboBox…estoy trabajando en netbeans…porfavor ojala me puedas ayudar…adios

  4. a gravatar

    Cristian dice:  


    Que yo sepa no se puede… mejor usar JList.

    Un saludo!

  5. a gravatar

    Jhorsen dice:  


    WENO MIRA LO QUE IOP NECESITO ES QUE ME COLABOREN NECESITO METER DATOS A UN JComboBox pero yo llamo los datos desde un archivo y los almaceno es un string osea ya lo que hago es cada dato del archivo tenerlo en un arreglo o en un vector pero necesito que ingresar cada valor que tiene el vector o el arreglo sea introducido al JComboBox… gracias y ps too bn

  6. a gravatar

    Cristian dice:  


    En ese caso debes usar el método addItem:

    http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JComboBox.html#addItem(java.lang.Object)

    Un saludo!

  7. a gravatar

    carlos dice:  


    tengo una duda y kisiera k me ayudaran lo k kiero es k con cada click de un boton dentro de un panel agregue una etiqueta dentro de otro panel la verdad no tengo mucha idea para resolver esto. mi correo es caom_13@hotmail.com gracias de antemano

  8. a gravatar

    Cristian dice:  


    Hola Carlos.

    Hay ejemplos de manejo de eventos aquí:

    http://casidiablo.net/java/

    Un saludo!

« 1 2 3 4 5 Todos

 

 

Antes de comentar... recuerda que no hago tareas

Te invito a subscribirte al feed RSS. ¿No sabes que es un lector de Feeds?

© 2007 - 2008 Dezinerfolio. Todos los derechos reservados.
Powered by Wordpress. Entradas RSS