Integrar classe de menu ao JFrame

4 respostas
levimendes

Olá pessoal, tenho duas classes separadas, uma chamada “Tela” que é formulário e outra chamada “Menu”, agora eu gostaria de saber como é que eu faço para integrar minha classe de Menus na Tela (JFrame), ou seja colocar esses menus na minha classe “Tela”,
eis aí minhas duas classes:

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


public class Menu {
	
	private JMenuBar barraMenu = new JMenuBar();
	private JMenu mnuArquivo = new JMenu("Arquivo");
	private JMenuItem itemAbrir = new JMenuItem("Abrir");
	private JMenuItem itemFechar = new JMenuItem("Fechar");
	private JMenuItem itemSalvar = new JMenuItem("Salvar");
	
	public Menu() {
		criaMenus();
	}
	
	private void criaMenus() {
		mnuArquivo.add(itemAbrir);
		mnuArquivo.add(itemFechar);
		mnuArquivo.add(itemSalvar);
		barraMenu.add(mnuArquivo);
	}
	
}
import java.awt.FlowLayout;

import javax.swing.JFrame;

public class Tela extends JFrame {

	//Não sei onde colocá-lo
	Menu menu = new Menu();
	
	public Tela() {
		super("teste");
		
		montaTela();
	}
	
	public void montaTela() {
		montaJanela();
		mostraJanela();
	}
	
	public void montaJanela() {
		setLayout(new FlowLayout());
		setSize(500,500);
		setLocationRelativeTo(null);
	}

	public void mostraJanela() {
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	public static void main(String[] args) {
		new Tela();
	}
}

4 Respostas

alessandro.asac

O menu bar é setado no JFrame através do método setMenuBar().

Nesse caso você teria que criar um método para fornecer acesso da Tela ao barraMenu de Menu.

Exemplo:

public void montaJanela() {
        setLayout(new FlowLayout());
        setSize(500,500);
        setLocationRelativeTo(null);
        setMenuBar(menu.criaMenus()); // com criaMenus() retornando o menu criado
}
levimendes

o programa não aceitou essa última linha do código.

alessandro.asac

Não aceitou porque criaMenus() é privado e não retorna o JMenuBar(barraMenu)

levimendes

agora sim cara blz, valeu.

Criado 28 de abril de 2010
Ultima resposta 28 de abr. de 2010
Respostas 4
Participantes 2