Ejemplo simple de JToolBar
Un JToolBar
es la típica barra de botones que aparece en cualquier aplicación de escritorio. El JToolBar de java permite que lo arrastremos con el ratón para colocarlo en otra parte de la ventana de nuestra aplicación o incluso que quede flotando en una ventana propia.
Vamos a hacer un ejemplo sencillo de JToolBar
, para ver cómo funciona.
Creación del JToolbar[editar]
Preparamos una ventana principal JFrame
que tiene por defecto un BorderLayout. Este layout tiene cinco zonas, una central para la parte principal de nuestra aplicación y cuatro laterales (arriba, abajo, derecha e izquierda) pensadas precisamente para menús, barras de botones, de estado, etc. El código para la creación de este JFrame
lo tienes explicado en Ejemplo sencillo con JFrame. Partimos de él.
El JToolBar
es sencillo, sólo tenemos que hacerle un new y añadirle todos los botones o acciones que queramos. Luego basta añadirlo al JFrame
en la posición que queramos (arriba, abajo, derecha o izquierda).
El JToolBar
se crea con un simple new, al que podemos o no poner parámetros
JToolBar toolBar = new JToolBar(JToolBar.HORIZONTAL);
...
Si no ponemos parámetro, por defecto es horizontal, es decir, la barra de botones será alargada en sentido horizontal y los botones irán de izquierda a derecha. Si ponemos JToolBar.HORIZONTAL
la barra de botones será alargada de forma vertical y los botones irán de arriba a abajo. Usaremos horizontal si queremos la barra de botones en la parte superior o inferior de JFrame
, o vertical si la queremos en el lado izquierdo o derecho del JFrame
Añadir Action al JToolBar[editar]
Al JToolBar
podemos añadirle directamente componentes java, como JButton
o podemos añadirle clases que implementen la interface Action
. Vimos ambas alternativas, con sus ventajas e inconvenientes en dar funcionalidad a un JMenuItem
. Para este ejemplo vamos a usar la misma Action
que en el enlace y luego añadiremos tres o cuatro botones.
El código para crear y añadir una Action
Action saveAction = new AbstractAction("Save") {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("Save clicked");
}
};
saveAction.putValue(Action.SHORT_DESCRIPTION,"Save the file");
saveAction.putValue(Action.SMALL_ICON,new ImageIcon("src/main/files/Actions-document-save-icon.png"));
toolBar.add(saveAction);
En dar funcionalidad a un JMenuItem
ya vimos una explicación detallada de cómo se crea la Action
, pero lo resumimos aquí
- Heredamos de
AbstractAction
que a su vez implementaAction
porque así nos ahorramos escribir algo de código. - Implementamos el método
actionPerformed()
que es el código que se ejecutará cuando alguien pulse el botón. - Ponemos cosas como icono y tooltip. No funcionan en
JToolBar
los atajos de teclado.
y finalmente, añadir la Action
al JToolBar
usando su método add()
Añadir botones al JToolBar[editar]
Para rellenar un poco más el JToolbar
en nuestro ejemplo, pero sin complicarnos la vida, en vez de crear más Action
, vamos simplemente a añadir JButton
JButton button2 = new JButton("2");
button2.addActionListener(e -> System.out.println("Button 2 clicked"));
toolBar.add(button2);
JButton button3 = new JButton("3");
button3.addActionListener(e -> System.out.println("Button 3 clicked"));
toolBar.add(button3);
El código es simple, crear JButton
, añadirles un ActionListener
para que hagan algo al pulsarlos y añadirlos al JToolBar
Añadir el JToolBar al JFrame[editar]
Solo nos queda añadir el JToolBar
al JFrame
. Como lo creamos horizontal, debemos ponerlo en la parte de arriba (NORTH) o en la de abajo (SOUTH). El código también es simple
frame.getContentPane().add(toolBar,BorderLayout.NORTH);
Ejecución y prueba del JToolBar[editar]
Listo, sólo nos queda ejecutar nuestro programa para ver nuestro JToolBar
en funcionamiento. Fíjate que tiene unos puntitos al principio de la barra. Desde ellos puedes arrastrar el JToolBar
con el ratón para colocarlo en la parte inferior, izquierda o derecha. Puedes incluso separarlo y hacerlo flotante en una ventana separada.
Tienes el código de todo esto en JToolBarExample.java