Problemas com JMenu

4 respostas
P

Galera,

Tô dando um olhada em Hibernate, e ai to fazendo uma aplicaçãozinha besta aqui só pra praticar umas coisas.

Mas o problema é: A porcaria do JMenuBar deveria estar sendo criado, mas quando mando executar, ele mostra apenas o form, mas nao mostra o JMenuBar, e ai ele dá um estouro de pilha bonito e come memória até parar de responder. Resumindo: Uma bomba.

Ai vai o código:

package com.hibernate.testClient;

import java.awt.FlowLayout;
import javax.swing.JFrame;
import com.hibernate.testClient.Menu;

public class Frm_Principal extends JFrame{
	
	Menu menu 			   = new Menu();
	
	public Frm_Principal () {
		this.setLayout(new FlowLayout());
		this.setJMenuBar(menu.getJMenu());
		this.setTitle("Teste com Hibernate e BD");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(800,600);
		this.setVisible(true);
		
				
		
		
	}
	
	public static void main (String [] args){
		Frm_Principal Frame = new Frm_Principal();
	}

}
package com.hibernate.testClient;

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

public class Menu {
	
	JMenuBar menuBar = new JMenuBar();
	
	JMenu	 Arquivo = new JMenu("Arquivo");
	JMenu	 Sobre	 = new JMenu("Sobre");
	
	JMenuItem Arquivo_Novo	 	= new JMenuItem("Novo...");
	JMenuItem Arquivo_Consultar = new JMenuItem("Consultar registro...");
	JMenuItem Arquivo_Editar 	= new JMenuItem("Editar registro...");
	
	public Menu() {			
		menuBar.add(Arquivo);
		menuBar.add(Sobre);
		/*----------------*/
		Arquivo.add(Arquivo_Novo);
		Arquivo.add(Arquivo_Consultar);
		Arquivo.add(Arquivo_Editar);

		menuBar.setVisible(true);
			
	}
		
	public JMenuBar getJMenu(){
		return menuBar;
	}
	
	

}

Zero warnings, zero erros.

4 Respostas

W

Cara, nao testei o seu codigo pra ver se funciona ou nao, mas tipo :

public Menu() {           
        menuBar.add(Arquivo);   
        menuBar.add(Sobre);   
        /*----------------*/   
        Arquivo.add(Arquivo_Novo);   
        Arquivo.add(Arquivo_Consultar);   
        Arquivo.add(Arquivo_Editar);   
  
        menuBar.setVisible(true);   
               
    }

Acho que vc nao precisa disso : menuBar.setVisible(true);

Porque eu acho que com o JFrame.setJMenuBar(menu.getJMenu()) na classe Frm_Principal ja seria suficiente pra adicionar e mostrar o menu no frame.

//Daniel

dyorgio

pois é,
esse setVisible(true) no JMenubar é desnecessário,
se a remoção disto não resolver o seu problema
cola o stack do erro ai pra nóis

Abs,

P

Tõ achando que é problema da JVM. Não solucionou.

E eu fui fazer um teste com:

package com.date;

import javax.swing.JOptionPane;
import java.util.Date;

public class Data {
	
	public static void main (String [] args) {
		Date hoje = new Date();
		
		JOptionPane.showMessageDialog(null, "Data: "+hoje.toString());
	}

}

E aconteceu o mesmo comportamento. O Swing travou.

Paulo_Ferreira1

Sua classe Menu, não deveria extends JMenuBar ?
E o JMenuBar não deveria ter Location e Size ?
Dá uma olhada também no gerenciador de Layout do Frame.

Criado 9 de julho de 2008
Ultima resposta 16 de jul. de 2008
Respostas 4
Participantes 4