Montar um menu em Swing

Qual a melhor maneira de se montar um menu?, estou tentando desse jeito mas não está aparecendo, o que está errado?

Leia: How to Use Menus

Exemplo:

[code]
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

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

public class Test {

private void go() {
	JFrame frame = new JFrame("Teste JMenuBar");

	JMenuBar menuBar = new JMenuBar();

	JMenu menuArquivo = new JMenu("Arquivo");
	JMenuItem menuNovo = new JMenuItem("Novo");
	JMenuItem menuSair = new JMenuItem("Sair");
	menuSair.addActionListener(new MenuHandler());

	menuArquivo.add(menuNovo);
	menuArquivo.add(new JSeparator());
	menuArquivo.add(menuSair);

	menuBar.add(menuArquivo);

	JMenu menuAjuda = new JMenu("Ajuda");
	JMenuItem menuSobre = new JMenuItem("Sobre");
	menuAjuda.add(menuSobre);

	menuBar.add(menuAjuda);

	frame.setJMenuBar(menuBar);
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	frame.setSize(200, 200);
	frame.setLocationRelativeTo(null);
	frame.setVisible(true);
}

private class MenuHandler implements ActionListener {

	public void actionPerformed(ActionEvent e) {
		System.exit(0);
	}
}

public static void main(String[] args) {
	new Test().go();
}

}[/code]

Consegui montar o menu, mas esta sendo colocado ao lado do meu label, como ajustar para ficar na parte superior da janela?


private JPanel getPainelPrincipal() {
		if (painelPrincipal == null) {
			painelPrincipal = new JPanel();
			painelPrincipal.setLayout(new GridBagLayout());
			painelPrincipal.setBorder(new EmptyBorder(new Insets(5,5,5,5)));
			getContentPane().add(BorderLayout.NORTH,painelPrincipal);
			
			GridBagConstraints c = new GridBagConstraints();
			
			Dimension shortField = new Dimension(40,20);
			Dimension mediumField = new Dimension(120,20);
			Dimension longField = new Dimension(240,20);
			Dimension hugField = new Dimension(240,30);
			
			EmptyBorder border = new EmptyBorder(new Insets(0,0,0,10));
			EmptyBorder border1 = new EmptyBorder(new Insets(0,20,0,10));
			
			c.insets = new Insets(2,2,2,2);
			c.anchor = GridBagConstraints.WEST;
	 
			JMenuBar menuBar = new JMenuBar();
			JMenu menuArquivo = new JMenu("Arquivo");
			JMenuItem menuNovo = new JMenuItem("Novo");
			JMenuItem menuSair = new JMenuItem("Sair");
			menuSair.addActionListener(new MenuHandler());

			menuArquivo.add(menuNovo);
			menuArquivo.add(new JSeparator());
			menuArquivo.add(menuSair);

			menuBar.add(menuArquivo);

			JMenu menuAjuda = new JMenu("Ajuda");
			JMenuItem menuSobre = new JMenuItem("Sobre");
			menuAjuda.add(menuSobre);

			menuBar.add(menuAjuda);
	 		painelPrincipal.add(menuBar);
			
			final JLabel lblCliente = new JLabel("Cliente:");
			lblCliente.setBorder(border);
			painelPrincipal.add(lblCliente,c);
			
			final JLabel lblNome = new JLabel("");
			lblNome.setBorder(border);
			c.gridx = 1;
			painelPrincipal.add(lblNome,c);
			
			
			JLabel lblNumero = new JLabel("Número:");
			lblNumero.setBorder(border);
			c.gridx = 0;
			c.gridy = 1;
			c.gridwidth = 1;
			c.gridheight = 1;
			painelPrincipal.add(lblNumero,c);
			c.fill = GridBagConstraints.NONE;
			
			final JTextField txtNumero = new JTextField();
			txtNumero.setPreferredSize(shortField);
			c.gridx = 1;
			c.fill = GridBagConstraints.HORIZONTAL;
			painelPrincipal.add(txtNumero,c);
			txtNumero.addKeyListener(
	         		new KeyListener(){
	 
	 					public void keyTyped(KeyEvent e) {
	 						txtNumero.setText(Principal.maxLength(txtNumero.getText(),7));
	 					}
	 
	 					public void keyPressed(KeyEvent e) {
	 						txtNumero.setText(Principal.maxLength(txtNumero.getText(),7));
	 					}
	 
	 					public void keyReleased(KeyEvent e) {
	 						txtNumero.setText(Principal.maxLength(txtNumero.getText(),7));
	 					}

	         			
	         		}
	         );

			JLabel lblStatus = new JLabel("Status:");
			//alterando a cor do label
			lblStatus.setForeground(Color.RED);
			lblStatus.setBorder(border);
			c.gridx = 0;
			c.gridy = 2;
			c.gridwidth = 1;
			c.gridheight = 1;
			painelPrincipal.add(lblStatus,c);
			c.fill = GridBagConstraints.NONE;
			
			final JLabel lblvalorStatus = new JLabel("");
			//alterando a cor do label
			lblvalorStatus.setForeground(Color.RED);
			lblvalorStatus.setBorder(border);
			c.gridx = 1;
			c.gridy = 2;
			c.gridwidth = 1;
			c.gridheight = 1;
			painelPrincipal.add(lblvalorStatus,c);
			c.fill = GridBagConstraints.NONE;
			
			JButton btnDiscar = new JButton("Discar");
			btnDiscar.setSize(shortField);
			c.gridx = 0;
			c.gridy = 11;
			c.fill = GridBagConstraints.HORIZONTAL;
			painelPrincipal.add(btnDiscar,c);
			btnDiscar.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					lblvalorStatus.setText("Discando!");
				}
			});
			
			JButton btnDesligar = new JButton("Desligar");
			btnDesligar.setSize(shortField);
			c.gridx = 1;
			c.gridy = 11;
			c.fill = GridBagConstraints.HORIZONTAL;
			painelPrincipal.add(btnDesligar,c);
			btnDesligar.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					lblvalorStatus.setText("Desligando!");
				}
			});
			
			JButton btnObter = new JButton("Obter");
			btnObter.setSize(shortField);
			c.gridx = 2;
			c.gridy = 11;
			c.fill = GridBagConstraints.HORIZONTAL;
			painelPrincipal.add(btnObter,c);
			btnObter.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					ManipulaXML xml = new ManipulaXML();
					Validacao valida = new Validacao();
					try {
						lblvalorStatus.setText("Obtendo Cliente!");
						txtNumero.setText(valida.formaTelefone(xml.getXml("Telefone",1)));
						lblNome.setText(xml.getXml("Nome",1));
						lblvalorStatus.setText("Cliente Obtido!");
					} catch (Exception e1) {
						e1.printStackTrace();
					}
				}
			});
	
		}
		return painelPrincipal;
	}


É possível criar um metodo somente para essa montagem de menu? e como eu chamaria dentro do meu Painel?

Você não deve usar:

Use:

Veja: public void setJMenuBar(JMenuBar menubar)

Funcionou cara, muito obrigado.

this.setJMenuBar(menuBar);