Criar um menu superior com swing

4 respostas
eliasAlmeida
Olá a todos, sou novo no java e estou tentando criar a minha primeira aplicação grafica com swing, preciso criar um menu superior mas não estou conseguindo, o codigo compila mas na hora de executar simplismente meu JFrame está vazio, aceito qualquer dica, "conselho" inclusive sobre outras alternativas e melhores convenções de codigo do que as que eu utilizo. se alguem poder me ajudar agradeço desde já.
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

public class Home {	
	private JFrame window = new JFrame();
	private JMenuBar menuSuperior = new JMenuBar();
	private JMenu cadastrar = new JMenu("cadastrar");
	private JPanel panel = new JPanel();
	private JMenuItem cadastrarCliente = new JMenuItem("Cadastrar Cliente");

	// Constructor
	public Home() {
		this.build();
	}

	// Getters Setters
	public JFrame getWindow() {
		return this.window;
	}

	public JMenu getCadastrar() {
		return this.cadastrar;
	}
	
	public void build() {
		this.getWindow().setTitle("C.O.T.A");
		this.getWindow().setSize(800, 700);
		this.getWindow().setVisible(true);
		this.getWindow().setResizable(false);
		this.getWindow().getContentPane().setLayout(null);
		this.getWindow().setLocation(50,10);
		this.getWindow().setBackground(Color.WHITE);
		this.getWindow().setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		this.getWindow().setJMenuBar(menuSuperior);
		this.getWindow().add(panel);
		this.getWindow().add(cadastrar);
		this.getCadastrar().add(cadastrarCliente);		
	}

}

4 Respostas

ViniGodoy

Você deve inserir os JMenus dentro da MenuBar, e os JMenuItem dentro do JMenu.

cadastrar.add(cadastarCliente);
menuSuperior.add(cadastrar);

this.getWindow().setJMenuBar(menuSuperior);  
this.getWindow().add(panel);
eliasAlmeida

Funcionou agora muito obrigado ViniGodoy

lucas.sampaio

Uma dúvida, pra que serve o JPanel?
Então… nesse caso, ele seria desnecessário nesse caso ou não?

ViniGodoy

Megadeth:
Uma dúvida, pra que serve o JPanel?
Então… nesse caso, ele seria desnecessário nesse caso ou não?

O JPanel serve para:
a) Agregar vários componentes juntos;
b) Organizar os vários componentes de acordo com um gerenciador de layout.

Você pode ter painéis dentro de painéis.

Considere os paineis como o similar do Swing ao DIV do HTML.

Todo JFrame tem pelo menos um painel. Se você fizer:

Está no fundo fazendo:

O que inclui um dado no painel principal do JFrame.

Criado 23 de agosto de 2010
Ultima resposta 18 de abr. de 2015
Respostas 4
Participantes 3