Swing y JFC (Java Foundation Classes)

Un objeto JToolBar crea una barra de herramientas con iconos -- dentro de una fila o una columna. Normalmente las barras de herramientas proporcionan acceso a funcionalidades que tambi�n se encuentran en �tems de men�s. Si este es el caso, adem�s de esta p�gina deber�as leer C�mo usar Actions.

La siguiente imagen muestra una aplicaci�n que contiene una barra de herramientas sobre un �rea de texto.

Por defecto, el usuario puede arrastrar la barra de herramientas a un lateral distinto de su contenedor o fuera dentro de su propia ventana. La siguiente figura muestra c�mo aparece la aplicaci�n despu�s de que el usuario haya arrastrado la barra de herramientas al lateral derecho de su contenedor. Para hacer que el arrastre de la barra de herramientas funcione correctamente, la barra debe estar en un contenedor que use BorderLayout, y el contenedor s�lo debe tener otro componente que est� situado en el centro.

La siguiente figura muestra c�mo aparece la aplicaci�n despu�s de que el usuario haya arrastrado la barra de herramientas fuera de su ventana.

El siguiente c�digo implementa la barra de herramientas. Puedes encontrar el programa complento en ToolBarDemo.java. Y las im�genes en left.gif, middle.gif, y LEFT.gif.

Nota: Si alg�n bot�n de nuestra barra de herramientas duplica la funcionalidad de otros componentes, como un �tem de men�, probablemente deber�amos crear y a�adir los botones de la barra de herramientas como se describe en C�mo usar Actions.
public ToolBarDemo() {
    ...
    JToolBar toolBar = new JToolBar();
    addButtons(toolBar);
    ...
    JPanel contentPane = new JPanel();
    contentPane.setLayout(new BorderLayout());
    ...
    contentPane.add(toolBar, BorderLayout.NORTH);
    contentPane.add(scrollPane, BorderLayout.CENTER);
    ...
}

protected void addButtons(JToolBar toolBar) {
    JButton button = null;

    //first button
    button = new JButton(new ImageIcon("images/left.gif"));
    ...
    toolBar.add(button);

    //second button
    button = new JButton(new ImageIcon("images/middle.gif"));
    ...
    toolBar.add(button);

    //third button
    button = new JButton(new ImageIcon("images/LEFT.gif"));
    ...
    toolBar.add(button);
}

A�adiendo unas pocas l�neas de c�digo al ejemplo anterior, podemos demostrar algunas caracter�sticas m�s de las barras de herramientas.

  • Usar el m�todo setFloatable para hacer que la barra no se pueda mover.
  • A�adir un separador a una barra de herramientas.
  • A�adir un componente que no sea un bot�n a una barra de herramientas.

Aqu� est� una imagen del nuevo GUI, que est� implementado por ToolBarDemo2.java.

Como la barra de herramientas ya no se puede arrastrar, no tiene el marcado en su flanco izquierdo. Aqu� est� el c�digo que desactiva el arrastre.

toolBar.setFloatable(false);

La mayor diferencia visible es que la barra de herramientas contiene dos componentes nuevos, que est�n precedidos por un espacio en blanco -- un separador . Aqu� est� el c�digo que a�ade el separador.

toolBar.addSeparator();

Aqu� est� el c�digo que a�ade los nuevos componentes.

./add to where the first button is initialized:
button.setAlignmentY(CENTER_ALIGNMENT);
./add to where the second button is initialized:
button.setAlignmentY(CENTER_ALIGNMENT);
./add to where the third button is initialized:
button.setAlignmentY(CENTER_ALIGNMENT);
...
//fourth button
button = new JButton("Another button");
...
button.setAlignmentY(CENTER_ALIGNMENT);
toolBar.add(button);

//fifth component is NOT a button!
JTextField textField = new JTextField("A text field");
...
textField.setAlignmentY(CENTER_ALIGNMENT);
toolBar.add(textField);

La llamada a setAlignmentY es necesaria para que los componentes de la barra de herramientas se alineen correctamente. Si el c�digo no seleccionara el alineamiento, el campo de texto se posicionar�a demasiado arriba. Este es el resultado de JToolBar usando BoxLayout como controlador de distribuci�n, y los botones y campos de texto tienen distinto alineamiento Y por defecto. Si encontramos problemas de distribuci�n con una barra de herramientas podemos ver la p�gina C�mo usar BoxLayout para buscar ayuda.

.�El API Tool Bar

Las siguientes tablas listan los m�todos y constructores m�s utilizados de JToolBar. Otros m�todos �tiles est�n definidos por las clases JComponent, Container, y Component.

M�todo Prop�sito
JToolBar() Crea una barra de herramientas.
JButton add(Action)

Component add(Component)

A�ade un componente (normalmente un bot�n) a la barra de herramientas. Si el argumento de add es un objeto Action, la barra de herramientas crea autom�ticamente un JButton y lo a�ade.
void addSeparator() A�ade un separador al final de la barra de herramientas.
void setFloatable(boolean)

boolean isFloatable()

La propiedad floatable es true por defecto, para indicar que el usuario puede arrastrar la barra de herramientas a una ventana separada. Para desactivar el arrastre de la barra de herramientas se utiliza toolbar.setFloatable(false).

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR