Criando menus com Java Swing

6 respostas
knop

Alguém poderia me ajudar a criar um menu usando o java swing? Gostaria de um menu simles, com algumas opções do tipo, arquivo, editar, etc… Comecei a programar em java a pouco tempo e no material q peguei não há referencia para este tipo de componente. A indicação de um material ou até mesmo o pedaço de um código com a criação de um menu seria perfeito. Obrigado!

6 Respostas

W

seria algo assim, para um JFrame

//barra do menu
JMenuBar menuBar = new JMenuBar();
//novo Menu
JMenu menuFile = new JMenu("File"); 
//item do menu
JMenuItem menuItem = new JMenuItem("Exit");
menuItem.addActionListener(new ActionListener() { 
	public void actionPerformed(ActionEvent e) {
	    System.out.println("fechando");
	    System.exit(0);
	}
});
menuFile.add(menuItem);
menuBar.add(menuFile);
super.setJMenuBar(menuBar);
farribeiro

A criação de JMenuBar é bem simples, idependente da sua IDE, já que isto é possível até em bloco de notas, segue um exemplo para criação:

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.WindowConstants;

public class principal extends JFrame{
	
	private JMenuBar BarraMenu = null;
	private JMenu mnuArquivo = null;
	private JMenuItem mnuSair = null;

	public principal() {
		super();
		// TODO Auto-generated constructor stub
		initialize();
	}
	
	private void initialize(){
		this.setTitle("Aplicação com menu");
		this.setJMenuBar(getBarraMenu());
		this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		this.setSize(800,600);
		this.setVisible(true);
	}

	private JMenuBar getBarraMenu() {
		if (BarraMenu == null){
			BarraMenu = new JMenuBar();
			BarraMenu.add(getMnuArquivo());
		}
		return BarraMenu;
	}

	private JMenu getMnuArquivo() {
		if (mnuArquivo == null){
			mnuArquivo = new JMenu();
			mnuArquivo.setText("Arquivo");
			mnuArquivo.add(getMnuSair());
		}
		return mnuArquivo;
	}

	private JMenuItem getMnuSair() {
		if (mnuSair == null){
			mnuSair = new JMenuItem();
			mnuSair.setText("Sair");
		}
		return mnuSair;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
                new principal();
	}

}
knop

Valew pela ajuda galera! Consegui criar o menu sem problemas! Abraço!

jason_bourne

Tem como usar esse exemplo que vc deu, de modo q o actionPerformed dele, dispare um Jpanel embaixo? estou tendo mt dificuldade para conseguir criar uma simples tela com Jmenu e um Jpanel embaixo.

knop

Tem sim…
Caso queira usar JPanels e so adicionar os panels no layout e dentro do metodo actionPerformed utilizar o comando panel.setVisible(true); onde panel e o nome do seu painel.
Pelo que estou percebendo, o que vc quer fazer seria melhor utilizando a classe JInternalFrame. de uma olhada aqui no forum que tem muita coisa sobre essa classe.

abraco

jason_bourne

hummm…talvez seja melhor mesmo, vou dar uma estudada no internal

Criado 23 de julho de 2005
Ultima resposta 29 de mar. de 2006
Respostas 6
Participantes 4