Componentes de Barra de Herramientas en Swing
Barras de herramientas
Las barras de herramientas en Swing
proporcionan un acceso rápido a las acciones más comunes de una aplicación, complementando la funcionalidad de los menús.
JToolBar
JToolBar
es un contenedor para componentes, típicamente botones, que representan acciones frecuentes en la aplicación.
Se utiliza para crear una barra de herramientas que puede ubicarse en diferentes bordes de la ventana y, opcionalmente, ser movible por el usuario.
Uso
- Se crea una instancia de
JToolBar
. - Se añaden componentes (generalmente
JButton
) a la barra de herramientas. - Se configura la posición y comportamiento de la barra de herramientas.
- Se añade la
JToolBar
al contenedor principal (generalmente unJFrame
).
Ejemplo:
1import javax.swing.*;2import java.awt.*;3import java.awt.event.ActionEvent;4import java.awt.event.ActionListener;5
6public class EjemploToolBar {7 private JFrame frame;8 private JToolBar toolBar;9 private JTextArea areaTexto;10
11 public EjemploToolBar() {12 inicializarComponentes();13 }14
15 private void inicializarComponentes() {16 frame = new JFrame("Ejemplo de ToolBar");17 frame.setSize(400, 300);18 frame.setLocationRelativeTo(null);19 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);20
21 // Crear el área de texto22 areaTexto = new JTextArea();23 frame.add(new JScrollPane(areaTexto), BorderLayout.CENTER);24
25 // Crear la barra de herramientas26 toolBar = new JToolBar();27 toolBar.setFloatable(true); // Permite que la barra sea movible28
29 // Botón Nuevo30 JButton btnNuevo = new JButton(new ImageIcon("assets/new.png"));31 btnNuevo.setToolTipText("Nuevo");32 btnNuevo.addActionListener(new ActionListener() {33 @Override34 public void actionPerformed(ActionEvent e) {35 areaTexto.setText("");36 }37 });38
39 // Botón Copiar40 JButton btnCopiar = new JButton(new ImageIcon("assets/copy.png"));41 btnCopiar.setToolTipText("Copiar");42 btnCopiar.addActionListener(new ActionListener() {43 @Override44 public void actionPerformed(ActionEvent e) {45 areaTexto.copy();46 }47 });48
49 // Botón Pegar50 JButton btnPegar = new JButton(new ImageIcon("assets/paste.png"));51 btnPegar.setToolTipText("Pegar");52 btnPegar.addActionListener(new ActionListener() {53 @Override54 public void actionPerformed(ActionEvent e) {55 areaTexto.paste();56 }57 });58
59 // Añadir botones a la barra de herramientas60 toolBar.add(btnNuevo);61 toolBar.addSeparator();62 toolBar.add(btnCopiar);63 toolBar.add(btnPegar);64
65 // Añadir un componente personalizado (JComboBox)66 String[] estilos = {"Normal", "Negrita", "Cursiva"};67 JComboBox<String> comboEstilos = new JComboBox<>(estilos);68 comboEstilos.addActionListener(new ActionListener() {69 @Override70 public void actionPerformed(ActionEvent e) {71 String estilo = (String) comboEstilos.getSelectedItem();72 cambiarEstiloTexto(estilo);73 }74 });75 toolBar.addSeparator();76 toolBar.add(comboEstilos);77
78 // Añadir la barra de herramientas al frame79 frame.add(toolBar, BorderLayout.NORTH);80 }81
82 private void cambiarEstiloTexto(String estilo) {83 Font currentFont = areaTexto.getFont();84 Font newFont;85 switch (estilo) {86 case "Negrita":87 newFont = currentFont.deriveFont(Font.BOLD);88 break;89 case "Cursiva":90 newFont = currentFont.deriveFont(Font.ITALIC);91 break;92 default:93 newFont = currentFont.deriveFont(Font.PLAIN);94 }95 areaTexto.setFont(newFont);96 }97
98 public void mostrar() {99 frame.setVisible(true);100 }101
102 public static void main(String[] args) {103 SwingUtilities.invokeLater(() -> {104 EjemploToolBar app = new EjemploToolBar();105 app.mostrar();106 });107 }108}
Información:
-
Creación de
JToolBar
:1toolBar = new JToolBar();2toolBar.setFloatable(true);Creamos la barra de herramientas y la configuramos como “flotante”, lo que permite al usuario moverla.
-
Creación de botones para la barra de herramientas:
1JButton btnNuevo = new JButton(new ImageIcon("assets/new.png"));2btnNuevo.setToolTipText("Nuevo");Creamos botones con iconos y les asignamos un texto de ayuda (tooltip).
-
Añadir
ActionListeners
a los botones:1btnNuevo.addActionListener(new ActionListener() {2@Override3public void actionPerformed(ActionEvent e) {4areaTexto.setText("");5}6});Definimos las acciones que se ejecutarán al hacer clic en los botones.
-
Añadir botones a
JToolBar
:1toolBar.add(btnNuevo);2toolBar.addSeparator();3toolBar.add(btnCopiar);Agregamos los botones a la barra de herramientas. Usamos
addSeparator()
para añadir una línea separadora entre grupos de botones. -
Añadir componentes personalizados:
1JComboBox<String> comboEstilos = new JComboBox<>(estilos);2toolBar.add(comboEstilos);Demostramos cómo añadir otros tipos de componentes, como un
JComboBox
, a la barra de herramientas. -
Establecer
JToolBar
enJFrame
:1frame.add(toolBar, BorderLayout.NORTH);Añadimos la barra de herramientas al frame, posicionándola en la parte superior.
Este ejemplo crea una aplicación con una barra de herramientas funcional que incluye botones para crear un nuevo documento, copiar y pegar texto, así como un selector de estilo de fuente. Las acciones de la barra de herramientas interactúan con el JTextArea
en el centro de la ventana.
Características adicionales de JToolBar
:
-
Orientación: Podemos cambiar la orientación de la barra de herramientas:
1toolBar.setOrientation(SwingConstants.VERTICAL); -
Bordes: Podemos personalizar o eliminar los bordes:
1toolBar.setBorderPainted(false); -
Tamaño de botones: Podemos establecer un tamaño uniforme para todos los botones:
1toolBar.setRollover(true); -
Drag and Drop: Por defecto, una
JToolBar
flotante puede ser arrastrada a diferentes bordes del contenedor. Podemos desactivar esta función:1toolBar.setFloatable(false);
JToolBar
proporciona una manera eficiente de ofrecer acceso rápido a las funciones más utilizadas en una aplicación Swing
, mejorando la usabilidad y la experiencia del usuario.