Titulo Jframe centralizado

15 respostas
java
araujors

Boa noite Pessoal,

Gostaria de saber se existe a possibilidade de centralizar o titulo no Jframe, tentei de inumeras possibilidades e nada. Alguem poderia me ajudar.

15 Respostas

rodriguesabner

Tenta esse:

araujors

Opa amigão tranquilo, eu tinha visto essa postagem, mas não consegui chamar a função no meu proprio jFrame criado, tens alguma dica.

rodriguesabner

Como assim não consegue chamar? Como vc fez?

Se tá falando daquele JFrame t… Vc pode fazer assim:

setSize(600,300);
setFont(new Font("System", Font.PLAIN, 14));
Font f = getFont();
FontMetrics fm = getFontMetrics(f);
int x = fm.stringWidth("Hello Center");
int y = fm.stringWidth(" ");
int z = getWidth()/2 - (x/2);
int w = z/y;
String pad ="";
//for (int i=0; i!=w; i++) pad +=" "; 
pad = String.format("%"+w+"s", pad);
setTitle(pad+"Hello Center");
araujors

Gostaria de chamar ao inicializar, tentei implementar p link que vc me passou mas da erro.

public FormPrincipal(String user) {
    initComponents();
this.setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);

this.setExtendedState(MAXIMIZED_BOTH);

this.setTitle(R@D Software - Denis Multimarcas);
carregarImagens();

    lblUser.setText(user);
    String UsrID = lblUser.getText().toUpperCase();
    lblUser.setText(UsrID);
    cmdPainel.setBackground(Color.LIGHT_GRAY);
    
    try {
        setIconImage(ImageIO.read(new File("src/imagens/CadVeiculoCar.png")));
    } catch (IOException e) {
    }
}
rodriguesabner

Cria um método separado, copia o que eu mandei ali e faz assim

public void titulo_centralizado(){
     //Código aqui
}

Aí joga embaixo do initComponents


initComponents();
titulo_centralizado():

araujors

Eu fiz um método assim antes, mas ele não fica centralizado, ele fica digamos que com um 3 tabs de distancia.

rodriguesabner

Tem que ver o tamanho do seu JFrame, aquele setSize(), não precisa

araujors

Olha a distancia que fica.

rodriguesabner

Vc tirou o setSize();?

araujors

Tirei sim, mas continua igual.

rodriguesabner

Cara, eu tô longe de casa então eu não testei este método ainda.

Mas tenho quase certeza que o problema está nessa linha:

getWidth()/2 - (x/2), tenta tirar essas divisões.
Deixa só getWidth();

araujors

Po amigão foi quase, ainda fica descentralizado.

rodriguesabner

Tenta tirar essa divisão também

araujors

Tentei varias formas já, tirando essa divisão ele volta ao normal na esquerda.

rodriguesabner

Vixi, assim que eu chegar em casa testo esse método, aí vejo se consigo chegar em algum resultado.

Criado 2 de maio de 2019
Ultima resposta 2 de mai. de 2019
Respostas 15
Participantes 2