|
Tool Tips |
Anterior | Siguiente |
Casi todas las clases que se usan para crear los interfaces de usuario se derivan de JComponent. Esta clase contiene un método llamado setToolTipText( String ). Así que se puede indicar un texto de información virtualmente en cualquier lugar y lo único que se necesita es invocar a este método, indicando el texto correspondiente al mensaje. Por ejemplo, el programa anterior se incorporaron dos mensajes de información de este tipo, uno a cada uno de los botones del ejemplo: . . . boton1.addActionListener( al ); boton1.setToolTipText( "Soy el JBoton 1" ); add( boton1 ); boton2.addActionListener( al ); boton2.setToolTipText( "Soy el JBoton 2" ); add( boton2 ); texto.setToolTipText( "Soy el JCampoDeTexto" ); add( texto ); . . . y cuando el ratón permanezca sobre cada JButton, en este caso, pero JComponent en el caso más general, durante un periodo de tiempo predeterminado, una pequeña cajita conteniendo el texto aparecerá al lado del puntero del ratón, también en este caso, indicando en botón sobre el cual se encuentra situado el cursor del ratón. Se puede utilizar un objeto Icon dentro de un objeto JLabel, o cualquier objeto que derive de AbstractButton; incluyendo JButton, JCheckBox, JRadioButton y los diferentes tipos de JMenuItem. El uso de iconos con etiquetas Swing es muy simple, tal como ya se mostraba en el ejemplo java1401.java y ahora en el ejemplo java1410.java, en donde se exploran todas las formas en las que se pueden emplear los iconos con los botones y sus descendientes. La figura reproduce la captura de la ejecución de este último programa, cuando el ratón llevaba varios segundos sobre la imagen correspondiente al botón, con lo cual el mensaje incorporado como ToolTip al botón que contiene el icono, aparece en pantalla. Se puede utilizar cualquier fichero gif. Para abrir ese fichero y convertirlo en imagen, simplemente se crea un objeto ImageIcon indicándole el nombre del fichero, y ya se puede utilizar en el código el objeto Icon resultante. import java.awt.*; import java.awt.event.*; import com.sun.java.swing.*; public class java1410 extends JPanel { static Icon imgs[] = { new ImageIcon( "star0.gif" ), new ImageIcon( "star1.gif" ), new ImageIcon( "star2.gif" ), new ImageIcon( "star3.gif" ), new ImageIcon( "star4.gif" ), }; JButton boton = new JButton( "JButton",imgs[3] ); JButton boton2 = new JButton( "Deshabilita" ); boolean mad = false; public java1410() { boton.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent evt ){ if( mad ) { boton.setIcon( imgs[3] ); mad = false; } else { boton.setIcon( imgs[0] ); mad = true; } boton.setVerticalAlignment( JButton.TOP ); boton.setHorizontalAlignment( JButton.LEFT ); } } ); boton.setRolloverEnabled( true ); boton.setRolloverIcon( imgs[1] ); boton.setPressedIcon( imgs[2] ); boton.setDisabledIcon( imgs[4] ); boton.setToolTipText( "AleHop!" ); add( boton ); boton2.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent evt ){ if( boton.isEnabled() ) { boton.setEnabled( false ); boton2.setText( "Habilita" ); } else { boton.setEnabled( true ); boton2.setText( "Deshabilita" ); } } } ); add( boton2 ); } public static void main( String args[] ) { java1410 boton = new java1410(); JFrame ventana = new JFrame(); ventana.getContentPane().add( boton,BorderLayout.CENTER ); ventana.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent evt ) { System.exit( 0 ); } } ); ventana.setSize( 300,200 ); ventana.setTitle( "Tutorial de Java, Swing" ); ventana.setVisible( true ); } } Un objeto Icon puede ser utilizado en muchos constructores, pero también se puede utilizar el método setIcon() para añadir o cambiar un icono. El ejemplo muestra como un JButton, o cualquier AbstractButton, puede manejar diferentes iconos que aparecen cuando se realizan acciones sobre ese botón: se pica, se deshabilita o se pasa el cursor por encima (sin pulsar ningún botón del ratón físico). Con esto se consigue proporcionar al botón la apariencia de encontrarse animado. |
|