Visual – JMenuBar, JMenu – JSeparator – JMenuItem – Java

Publicado: 25 de março de 2014 em Java

Em computação e telecomunicações, um menu é uma lista de opções ou comandos apresentados a um operador por um computador ou sistema de comunicações . Os menus são, por vezes, hierarquicamente organizado, permitindo uma navegação através de diferentes níveis da estrutura do menu.  A seleção de um item do menu com uma seta irá expandi-lo, mostrando um segundo menu (o sub-menu) com opções relacionadas com a entrada selecionada. É possível adicionar outros componentes ao menu como ícones de imagem, um componente de botões de radio e até mesmos botões de cheque.

JMenubar

Uma implementação de uma barra de menu. Você pode adicionar objetos JMenu para a barra de menu para a construção de um menu.

JMenu

Uma implementação de um menu – uma janela pop-up contendo JMenuItems que é exibido quando o usuário seleciona um item no JMenuBar. Um JMenu também pode conter JSeparators.

JSeparator

JSeparator fornece um componente de uso geral para a implementação de linhas divisórias – mais comumente usado como um divisor entre os itens de menu que os divide em grupos lógicos.

JMenuItem

Uma implementação de um item em um menu. Um item de menu é essencialmente um botão em uma lista. Quando o usuário seleciona o botão, a ação associada ao item de menu é executado.

Exemplo:

Neste exemplo criamos um menu com seus sub-menus e seus respectivos eventos.

Java

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;

public class CriaMenu
{
	// Declara componentes
	JLabel texto;

	// Cria o menu completo
	public JMenuBar criaMenu()
	{
		// Declara componentes do menu genericamente
		JMenuBar barraMenu;
		JMenu menu;
		JMenu submenu;
		JMenuItem menuItem;

		// Cria barra do Menu
		barraMenu = new JMenuBar();

		// Cria menu
		menu = new JMenu("Menu 1");

		// Adiciona menu a barra
		barraMenu.add(menu);

		// Cria item do menu
		menuItem = new JMenuItem("Item do Menu 1", KeyEvent.VK_I);

		// Cria evento do item
		menuItem.addActionListener(new ActionListener()
		{

			@Override
			public void actionPerformed(ActionEvent e)
			{
				texto.setText("Você cliquou no item: 1 do menu 1");

			}
		});

		// Adiciona item ao Menu
		menu.add(menuItem);

	    // Repete processo para o segundo item
		menuItem = new JMenuItem("Item do Menu 2", KeyEvent.VK_T);
		menuItem.addActionListener(new ActionListener()
		{

			@Override
			public void actionPerformed(ActionEvent e)
			{
				texto.setText("Você cliquou no item: 2 do menu 1");

			}
		});

		menu.add(menuItem);

		// Repete processo para o terceiro item
		menuItem = new JMenuItem("Item do Menu 3", KeyEvent.VK_E);
		menuItem.addActionListener(new ActionListener()
		{

			@Override
			public void actionPerformed(ActionEvent e)
			{
				texto.setText("Você cliquou no item: 3 do menu 1");

			}
		});
		menu.add(menuItem);

		// Adiciona um separador de menu
		menu.addSeparator();

		// Repete processo para o quarto item
		menuItem = new JMenuItem("Item do Menu 4", KeyEvent.VK_M);
		menuItem.addActionListener(new ActionListener()
		{

			@Override
			public void actionPerformed(ActionEvent e)
			{
				texto.setText("Você cliquou no item: 4 do menu 1");

			}
		});
		menu.add(menuItem);

		// SubMenu
		// para criar um submenu cria-se um novo menu.
		// e adiciona um item 

		// Cria um submenu (novo menu)
		submenu = new JMenu("Item com Submenu");

		// Cria um item e seu evento
     	menuItem = new JMenuItem("Item do Submenu", KeyEvent.VK_U);
		menuItem.addActionListener(new ActionListener()
		{

			@Override
			public void actionPerformed(ActionEvent e)
			{
				texto.setText("Você cliquou no item: 1 do sub menu");

			}
		});

		// Adiciona item ao submenu
		submenu.add(menuItem);

		// Adiciona submenu ao menu
		menu.add(submenu);

		// Cria um segundo menu
		menu = new JMenu("Menu 2");

		// Cria item para o segundo menu e seu evento
		menuItem = new JMenuItem("Item do menu 2", KeyEvent.VK_D);
		menuItem.addActionListener(new ActionListener()
		{

			@Override
			public void actionPerformed(ActionEvent e)
			{
				texto.setText("Você cliquou no item: 1 do menu 2");

			}
		});

		// Adiciona item ao menu
		menu.add(menuItem);

		// Adiciona menu a barra de menus
		barraMenu.add(menu);

		// retorna menu completo
		return barraMenu;

	}

	// Cria um painel
	public Container criaPainel()
	{
		// Cria painel e suas propriedades
		JPanel painel = new JPanel(new BorderLayout());
		painel.setOpaque(true);

		// Cria um componente de texto
		texto = new JLabel("Você cliquou no item:");

	    // Adiciona componente ao painel
		painel.add(texto, BorderLayout.PAGE_END);

		/// Retorna Painel
		return painel;
	}

	// Cria GUI
	public static void criaGUI()
	{
		// Cria formulario e suas propriedades
		JFrame formulario = new JFrame("Desenvolvimento Aberto");
		formulario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		// Cria Menu
		CriaMenu menu = new CriaMenu();

		// Adiciona barra de menus na GUI
		formulario.setJMenuBar(menu.criaMenu());

		// Adiciona painel na GUI
		formulario.setContentPane(menu.criaPainel());

		// Adiciona propriedades ao formulario
		formulario.setSize(400, 300);
		formulario.setVisible(true);		

	}

	public static void main(String[] args)
	{
		javax.swing.SwingUtilities.invokeLater(new Runnable() {

			@Override
			public void run()
			{

				// Monta GUI
				criaGUI();
			}
		});

	}

}

Deixe um comentário