:::JFrame::::

6 respostas
kartler

Como deixar o JFrame centralizado na tela ??? porq sempre ele só abre do lado direito…
eu preciso que indepedente da configuração de video 800x600 ou 1024x768 le fique centralizado.

6 Respostas

mlopes

Fala,

Eu já vi em algum lugar aqui alguma coisa sobre isso, com uma classe que cuida do posicionamento… algo com Bounds.

Mas para jdk1.3 isso aqui da pra ter uma idéia de como fazer:

if ((Toolkit.getDefaultToolkit().getScreenSize().width == 800)
			    && (Toolkit.getDefaultToolkit().getScreenSize().height == 600)) {
			setSize(800, 600);
		} else {
			setSize(((Toolkit.getDefaultToolkit().getScreenSize().width / 4) * 3),
			    ((Toolkit.getDefaultToolkit().getScreenSize().height / 4) * 3));
		}

		setLocation((Toolkit.getDefaultToolkit().getScreenSize().width / 2)
		    - (getWidth() / 2),
		    (Toolkit.getDefaultToolkit().getScreenSize().height / 2)
		    - (getHeight() / 2));

[]'s

A

coloque essa linha no construtor:

this.setExtendedState(JFrame.MAXIMIZED_BOTH);

um abraço,

André Topázio

kartler

O meu JFrame tem a medida de 350 , 250 e eu o setei para o usuário na maximizar…eu quero e que ele fique centralizado na tela …

Obrigado

mlopes

Fala

O código que passei faz isso.

Use apenas a segunda parte.

[]'s

D

use o seguinte trecho de código

Dimension dimFrm = new Dimension( 350, 250 );
Dimension dimScr = Toolkit.getDefaultToolkit().getScreenSize();
int iX = 0;
int iY = 0;
            
if (dimFrm.width >= dimScr.width) dimFrm.width = dimScr.width;
else iX = ( dimScr.width - dimFrm.width ) / 2;
                    
if (dimFrm.height >= dimScr.height) dimFrm.height = dimScr.height;
else iY = ( dimScr.height - dimFrm.height ) / 2;
            
setSize( dimFrm );
setLocation( iX, iY );

Para outras medidas altere apenas a primeira linha.
Também é fácil fazer com que o form tenha um tamanho com, digamos 60% da largura do vídeo e 50% da altura.

kartler
  1. Brigadú galera
Criado 7 de maio de 2003
Ultima resposta 7 de mai. de 2003
Respostas 6
Participantes 4