JFrame inicia zuado

4 respostas
tdestro

Meu programa inicia com um JFrame que contém um MenuBar e um Label de imagem de fundo.
Quando eu inicio o programa, a barra de menu fica toda estranha e a imagem de fundo nao carrega
Se eu minimizo a tela e abro ela de novo, tudo volta a ao normal. O menu fica perfeito e a imagem do label é carregada

Segue abaixo o meu código com as propriedades fo JFrame

public static void IniciaTela(){

	JFrame frame = new JFrame();
	JMenuBar menuBar = new JMenuBar();
	JMenu mnuCadastro = new JMenu("Cadastro");
	JMenuItem mnuCadastroCliente = new JMenuItem("Cliente");
	JLabel lblFundoTela = new JLabel();
frame.setLayout(null);

frame.setVisible(true);

frame.setBounds(250,80, 800, 600);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setResizable(false);

frame.setEnabled(true);

frame.setLocationRelativeTo(null);
lblFundoTela.setVisible(true);
	lblFundoTela.setBounds(0, 0, 800, 600);
	lblFundoTela.setIcon(new ImageIcon("C:\\Documents and Settings\\Thiago\\Meus documentos\\Programação\\Java\\Projetos\\CadastroGUI\\bin\\fundo.jpg"));
	
	
	//MENU ITENS
	mnuCadastroCliente.setVisible(true);
	mnuCadastroCliente.addActionListener(t);
	
	//ADICIONA O SUBMENU CLIENTE AO MENU CADASTRO
	mnuCadastro.add(mnuCadastroCliente);
	mnuCadastro.setVisible(true);
	
	//ADICIONA O MENU CADASTRO A BARRA DE MENU
	menuBar.add(mnuCadastro);
	menuBar.setVisible(true);
	menuBar.setBounds(1, 0, 800, 25);

	//SETA
	frame.setJMenuBar(menuBar);
	frame.add(lblFundoTela);

}

4 Respostas

tdestro

Ninguem :frowning:

ViniGodoy

Deixe o frame visível por último. Ele está ficando visível antes dos componentes entrarem nele.

Ou então, dê o comando invalidate() ao final. Mas a opção de cima é ainda melhor, pq evita desenhar 2 vezes o frame.

tdestro

MUUUUUUUUUUUUUUITO obrigado, cara
Valeu mesmo

Paulo_Ferreira1

Só mais uma observação construtiva:
JMenuBar, JmenuItem e Jmenu, ficam visíveis automaticamente após serem adicionados.
Pode retirar do seu código, as linhas abaixo:

mnuCadastroCliente.setVisible(true);

mnuCadastro.setVisible(true);

menuBar.setVisible(true);
Criado 15 de junho de 2008
Ultima resposta 17 de jun. de 2008
Respostas 4
Participantes 3