[RESOLVIDO]Meu Frame sumiu

6 respostas
digolipertte
Oi pessoal estava tranquilamente criando meu programa quando derrepente de uma hora pra outra meu Frame sumiu o programa roda normal mas o frame não aparece.
import java.awt.*;

import javax.swing.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;





public class Principal {
	
	public static void main (String [] args) throws Exception {
		
		JFrame janela = new JFrame(); 
		JButton botao = new JButton("Sair");
		JLabel playing = new JLabel("Musica Atual");
		JLabel played = new JLabel("Musica tocada");
       
		janela.setLayout(null);
        janela.getContentPane().setBackground(Color.black);		

        janela.add(playing);
        janela.add(played);
        
        
        janela.add(botao);
        botao.setSize(70, 30);
		botao.setBackground(Color.GRAY);
        botao.setLocation(620, 5);
        
        
        botao.addActionListener(new ActionListener() {    
           
			
			
            @Override    
            public void actionPerformed(ActionEvent arg0) {    
                   
            	   int i = JOptionPane.showConfirmDialog(null ,"Deseja fechar a aplicação?", 
            			   "Saída",JOptionPane.YES_NO_OPTION); 
            	   if (i == JOptionPane.YES_OPTION ) { 
            	   System.exit(0); 
            	   }   
                  
            }    
        });
		
		
		janela.setLocationRelativeTo(null);
        janela.setUndecorated(true);
        janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		janela.setVisible(true);
		
		
		new Tocador ();
	}

}

6 Respostas

Luan_Kevin

você precisa passa uma dimensão para seu frame!

Luan_Kevin

(opcional) e você também pode retirar a linha de código

janela.setUndecorated(true);

pois ela desabilita aquele quadro que se forma ao redor de seu frame, retirando o botão X vermelho e etc…

S
digolipertte:
Oi pessoal estava tranquilamente criando meu programa quando derrepente de uma hora pra outra meu Frame sumiu o programa roda normal mas o frame não aparece.
import java.awt.*;

import javax.swing.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;





public class Principal {
	
	public static void main (String [] args) throws Exception {
		
		JFrame janela = new JFrame(); 
		JButton botao = new JButton("Sair");
		JLabel playing = new JLabel("Musica Atual");
		JLabel played = new JLabel("Musica tocada");
       
		janela.setLayout(null);
        janela.getContentPane().setBackground(Color.black);		

        janela.add(playing);
        janela.add(played);
        
        
        janela.add(botao);
        botao.setSize(70, 30);
		botao.setBackground(Color.GRAY);
        botao.setLocation(620, 5);
        
        
        botao.addActionListener(new ActionListener() {    
           
			
			
            @Override    
            public void actionPerformed(ActionEvent arg0) {    
                   
            	   int i = JOptionPane.showConfirmDialog(null ,"Deseja fechar a aplicação?", 
            			   "Saída",JOptionPane.YES_NO_OPTION); 
            	   if (i == JOptionPane.YES_OPTION ) { 
            	   System.exit(0); 
            	   }   
                  
            }    
        });
		
		
		janela.setLocationRelativeTo(null);
        janela.setUndecorated(true);
        janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		janela.setVisible(true);
		
		
		new Tocador ();
	}

}

Uma dica importante amigo: use Gerenciadores de Layout. Setar os componentes direto no seu JFrame pode te dar uma baita dor de cabeça depois no que diz respeito a resoluções diferentes em computadores diferentes, ou até ao simples ato de você maximizar uma tela (os componentes vão ficar desalinhados, experimente maximizar sua tela).

Coloque os componentes (caixas de texto, botões) dentro de um JPanel e este dentro do seu JFrame, e defina para esse JPanel um gerenciador de layout. Não use .setLayout(null).

Abraços.

Caio.Sergio

Amigo, faltou

janela.setSize(x,y);

//e

janela.setLocation(x,y);

mas como ja dito aqui neste post utilize Gerenciadores de Layout(Flow Layout, BorderLayout, Box Layout) e nuca:

setLayout(null);

espero ter ajudado

digolipertte

Resolvido galera.
Como os amigos falaram era o janela.setSize(x,y);
Quando eu estava inserindo uns jlabel no frame acabei apagando e não tinha visto.
Amigos eu tirei a barra e os botões de maximizar, minimizar e fechar de proposito, esse programa para fechar ele tem que clickar no botão sair e depois confirmar. Isso evita que o usuário feche o programa sem querer pois ele tem que rodar o dia inteiro. e sobre o layout eu gosto de usar o (null) e dimensionar a gosto porque da pra fazer do meu jeito e deixar milimetrado. Mas eu já tiro a opção maximizar para não dar bagunça.
Obrigado gente sem a ajuda de vcs eu não ia ver esse erro, já tava cansado de olhar e não achava.

Caio.Sergio

OK… que ótimo que funcionou… vlw Amigo!! Abraço

Criado 7 de maio de 2012
Ultima resposta 8 de mai. de 2012
Respostas 6
Participantes 4