Erro ao Criar um Menu Jframe

Pessoal é o seguinte: Estou tentando criar um menu herdando do Jframe. Já fiz toda parte de construção da classe porém quando vou executa-la com o método main me retorna o seguinte erro:

Exception in thread “main” java.lang.IllegalArgumentException: adding container’s parent to itself
at java.awt.Container.checkAddToSelf(Unknown Source)
at java.awt.Container.addImpl(Unknown Source)
at java.awt.Container.add(Unknown Source)
at Pack1.Menu.(Menu.java:42)
at Pack1.Start.main(Start.java:11)

Segue o código:

package Pack1;

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

//Nome da minha classe herdando da classe Jframe
public class Menu extends JFrame {

//Criando os atributos da minha classe com os atributos da superclasse
 JMenuBar barra;
 JMenu cadastro,consulta,movimentacao,relatorios,utilitarios,ajuda;
 JMenuItem icadaluno,iconsaluno,imovmensalidades,irelaluno,icalculadora,isobre;

public Menu(){//Método construtor
	
	//Construindo meus atriutos a partir da superclasse
	barra=new JMenuBar();
	cadastro=new JMenu("Cadastros");
	consulta=new JMenu("Consultas");
	movimentacao=new JMenu("Movimentações");
	relatorios=new JMenu("Relatórios");
	utilitarios=new JMenu("Relatórios");
	ajuda=new JMenu("Ajuda");
	
	icadaluno=new JMenuItem("Alunos");
	iconsaluno=new JMenuItem("Alunos");
	imovmensalidades=new JMenuItem("Mensalidades");
	irelaluno=new JMenuItem("Alunos");
	icalculadora=new JMenuItem("Calculaldora");
	isobre=new JMenuItem("Sobre");
	

	cadastro.add(icadaluno);
	consulta.add(iconsaluno);
	movimentacao.add(imovmensalidades);
	relatorios.add(irelaluno);
	utilitarios.add(icalculadora);
	ajuda.add(isobre);
	
	barra.add(barra);
	barra.add(cadastro);
	barra.add(consulta);
	barra.add(movimentacao);
	barra.add(relatorios);
	barra.add(utilitarios);
	barra.add(ajuda);
	
	add(barra);
	
	barra.setBounds(1, 1, 1024, 25);
	
}

public void init(){
	
	setTitle("Emavv - Sistema em Java");
	setSize(1024,728);
	setLayout(null);
	setVisible(true);
	setDefaultCloseOperation(EXIT_ON_CLOSE);
}

}

Método Main

package Pack1;

public class Start {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub
	
	Menu menu=new Menu();
	menu.init();

}

}

Por favor me ajudem, sou novo em Java e não conheço muito os erros.

Desde Já Agradeço a todos!

se excluir essa linha:

barra.add(barra);

o erro continua ?

Cara, muito obrigado, deu certo… Não tinha visto essa linha, me cegou os olhos rsrsrs

Brigado mesmo!

oi, estou fazendo faculdade e estou na 2ª fase, terminando algoritmo 2, tu sabe como posso compilar pelo cmd, esse código, pois fiz assim: javac Menu extends JFrame.java e não deu, o processo é esse mesmo, é que não usamos aclipse ou o netbans ainda, só a partir de programação I, o prof. preferiu dá manualmente para saber encontrar os erros sem ajuda de uma IDE, por isso a dúvida. Se puder me ajudar agradeço.

[quote=douglaskd]se excluir essa linha:

barra.add(barra);

o erro continua ?[/quote]

oi, estou fazendo faculdade e estou na 2ª fase, terminando algoritmo 2, tu sabe como posso compilar pelo cmd, esse código, pois fiz assim: javac Menu extends JFrame.java e não deu, o processo é esse mesmo, é que não usamos aclipse ou o netbans ainda, só a partir de programação I, o prof. preferiu dá manualmente para saber encontrar os erros sem ajuda de uma IDE, por isso a dúvida. Se puder me ajudar agradeço.
quero compilar o código do colega acima que iniciou esse fórum.

acredito que você deva salvar o arquivo com o nome: Menu.java

em seguida entrar no prompt , acessar o diretório do arquivo e digitar: javac Menu.java

hà seculos rs, que não uso linha de comando pra compilar

oi…
e como faço para executar ele de outra forma?

:smiley:

[quote=thlias]Cara, muito obrigado, deu certo… Não tinha visto essa linha, me cegou os olhos rsrsrs

Brigado mesmo![/quote]

Oi como faço para executar esse código, que não seja pelo cmd?

Vou dar um exemplo bobo, acho que você vai entender ao rodar o exemplo.

Digamos que você tenha o seguinte programa:

package pacote;
public class Exemplo {
    public static void main (String[] args) {
        System.out.println ("Oi, gente!");
    }
}

e que o javac.exe esteja no seguinte lugar:

c:\program files\java\jdk1.7.0\bin\javac.exe

(se não estiver nesse lugar, por favor procure e substitua nos comandos abaixo. Não se esqueça das aspas, que são significativas)

Aqui listei exatamente os passos (em uma tela do DOS) que fiz para criar e rodar esse programa.

C:\>mkdir c:\exemplos

C:\>cd \exemplos

C:\exemplos>mkdir src

C:\exemplos>cd src

C:\exemplos\src>mkdir pacote

C:\exemplos\src>cd pacote

C:\exemplos\src\pacote>notepad Exemplo.java

C:\exemplos\src\pacote>cd ..

C:\exemplos\src>cd ..

C:\exemplos>mkdir bin

C:\exemplos>"c:\Program Files\java\jdk1.7.0\bin\javac" -sourcepath src -d bin src\pacote\Exemplo.java

C:\exemplos>java -cp bin pacote.Exemplo
Oi, gente!

C:\exemplos>