Duvida com edição do JFrame [RESOLVIDO]

5 respostas
flaviofarias

Queria ajuda para entender porque esse JFrame não ta ficando da cor que eu quero, pelo que eu percebi é alguma coisa relacionado com o setVisible() pois inicialmente ele fica na cor que eu quero e depois volta para o padrão. Por favor me ajudem ja vi muitos códigos na net e não entendo porque isso está errado.

package projetop2;
// Criar o Frame principal
// Criar um 
import java.awt.*;
import javax.swing.*;

public class MenuPrincipal {

    JFrame JanPrincipal; // Janela Principal
    public MenuPrincipal() {  //Cria a Janela Principal
        JanPrincipal = new JFrame("Nossa Radio");//Nome da Janela Principal

        //Configuração do Frame ou Janela Principal
        JanPrincipal.setSize(800, 600);  //Tamanho da Janela Principal 
        
        JanPrincipal.setLocationRelativeTo(null);// Aparecer no centro da tela
        JanPrincipal.setResizable(false); // Impede um novo redimensionamento da janela principal
        JanPrincipal.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// Encerrar processo quando for fechado
        JanPrincipal.setBackground(Color.DARK_GRAY);
    }

    public void setVisible(boolean b) {
        JanPrincipal.setVisible(b); // A Janela vai ser visivel de acordo com b
    }
    
    
    public static void main(String[] args) {
        MenuPrincipal menu = new MenuPrincipal();
        menu.setVisible(true);
    }
}

5 Respostas

InicianteJavaHenriqu

Pra que você criou/sobrescreveu o método setVisible(); :?: :shock: :?: Ela já pertence ao Java e recebe como parâmetro um valor boolean, sendo true visível e false invisível.

:thumbup:

flaviofarias

Eu fiz pois eu tava querendo chamar o setVisible() no main e como eu não to estendendo a classe JFrame eu tenho que sobrescrever o método.

package projetop2;
// Criar o Frame principal
// Criar um 
import java.awt.*;
import javax.swing.*;

public class MenuPrincipal extends JFrame {

    public MenuPrincipal() {

        this.setSize(800, 600);
        this.setResizable(false);
        this.setBackground(Color.red);

        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

    public static void main(String[] args) {
        MenuPrincipal menu = new MenuPrincipal();
        menu.setVisible(true);

    }
}

.

Meu código agora está assim mas ele continua com o mesmo problema que é não ficar na cor que eu quero. Minha idéia é fazer um Frame 800x600 da cor vermelha e dentro dele colocar um painel de 200x200 de cor cinza

InicianteJavaHenriqu

Já que você não quer (eu acho que deveria) extends JFrame em sua classe MenuPrincipal, escolha outro nome para o método setVisible(); pode até não ser isto, mas tenta…

C

Eh meio complicado de explicar, o jframe eh composto por outros components tabem, o JFrame.setBackgoround altera a cor do fundo do JFrame mas n dos componentes “internos”, para alterar a cor do fundo do Tela eh recomendavel inserir um JPanel com a cor de fundo desejado.

vc tabem pode alterar a cor do fundo fazendo assim:

JFrame f = new JFrame(); f.getContentPane().setBackground(Color.red);

flaviofarias

Valeu CronosSage era exatamente isso que eu queria, valeu

Criado 19 de maio de 2012
Ultima resposta 20 de mai. de 2012
Respostas 5
Participantes 3