Area Cliente

11 respostas
Y

O que tenho que fazer para conseguir as dimencoes da area cliente de um
JFrame?

11 Respostas

danieldestro

Você quer as dimensões do JFrame ou do desktop do cliente?

Dimensões do desktop:

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int largura = screenSize.width; int altura = screenSize.height;

Y

Na verdade o que eu quero sao as dimencoes da area cliente de um JFrame.

A area cliente e o interior de um JFrame, ou seja, sem contar a barra de titulo e a borda. E onde fica o contentPane.

Eu estou tentando fazer uma animcao e preciso detectar colisao com as bordas da janela, porem a posicao [0, 0] fica no caso superior esquerdo da barra de titulo, assim eu so consigo detectar uma colisao quando o objeto ja esta na altura da barra de titulo ou dentro da borda esquerda.

danieldestro

Porquê você não coloca um JPanel e trabalha com o JPanel ao invés do JFrame?

andre_a_s

Talvez um JInternalFrame possa resolver tbm :wink:

danieldestro

JInternalFrame também tem as bordas da janela e tal. Tem que ser JPanel mesmo.

Y

Eu ja pensei em resolver desta maneira mas ha um problema!!
Eu estou usado BufferStrategy para fazer DOUBLE-BUFFERING p/ remover a cintilacao, e os BufferStrategy so funcionam em subclasses da classe java.awt.Window.

brlima

YellowBike:
Eu ja pensei em resolver desta maneira mas ha um problema!!
Eu estou usado BufferStrategy para fazer DOUBLE-BUFFERING p/ remover a cintilacao, e os BufferStrategy so funcionam em subclasses da classe java.awt.Window.

Com getBounds da classe Window vc já pode trabalhar. JFrame é uma Window toda cheia de bordas e talz…

flw!

Y

O que exatamente retorna o metodo getBounds()??? Pq eu o usei no contentPane do meu JFrame para que eu podesse capturar a posicao deste e ele me retorna [x=0, y=0]!!!

brlima

Ele retorna a posição X e Y com relação ao JFrame, ( o que sempre será 0,0 ) mas tambem retorna o tamanho ( width e height ), que creio que esteja carreagada. Senão tem o preferredSize(). Algum deles deve retornar.

flw!

Y

Usando os valores de altura e largura retornados pelo getBounds() eu obtive um resultado ainda pior!!! Com estes valores as colisoes sao identificadas pouco antes do objeto atingir a face direita do frame e muito antes de atingir a face inferior!!!

P/ falar a verdade eu acho que o sistema de bufferizacao atraves de BufferStrategy’s so deve ser realmente funcional em sistemas executando em tela cheia ou frames sem decoracao!!

Bom, mesmo assim muito obrigado pelo ajuda!!!

Y

Bom ainda nao fiz teste mas acredito que, segundo a documentacao, ja e conclusivo. O metodo calculateInnerArea(JComponent, Rectangle) da classe SwingUtilities deve resolver o problema proposto.

Criado 1 de dezembro de 2004
Ultima resposta 4 de dez. de 2004
Respostas 11
Participantes 4