[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
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
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
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
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.
50 Comentarios | deja el tuyo



Checa estos ejemplos:
http://casidiablo.net/codigo-java-flowlayout-borderlayout-gridlayout/
http://casidiablo.net/codigo-java-boxlayout-gridbaglayout/
Un saludo!
ya hic el codigo que pones de ejmplo con las etiquetas. hice otro pero la imagen no sale. puse de la ruta pero ni haci salio. como le hago para que me aparesca
tendrías algún ejemplo sobre cómo enlazar controles con datos de una base de datos access?? o algún ejemplo de cómo utilizar eclipse para enlazar datos a controles..?
ho0olax que tal hermano he descargado algunos de tus programas para apoyo pero saves tengo un problema cuando empiezo a usar botones y setlayout y tipo de esas librerias te dejo esto
PruebaBoton.java:6: PruebaBoton clashes with package of same name
public class PruebaBoton extends JFrame
^
PruebaBoton.java:42: cannot resolve symbol
symbol : method setDefaultLookAndFeelDecorated (boolean)
location: class javax.swing.JFrame
JFrame.setDefaultLookAndFeelDecorated(true);
^
PruebaBoton.java:43: cannot resolve symbol
symbol : method setDefaultLookAndFeelDecorated (boolean)
location: class javax.swing.JDialog
JDialog.setDefaultLookAndFeelDecorated(true);
^
3 errors
—-jGRASP wedge2: exit code for process is 1.
—-jGRASP: operation complete.
me pone esa serie de errores quisiera sever como solucionarlos mi mail es akido_mersan@hotmail.com espero contar con tu ayuda