Posição absoluta

4 respostas
tabocu

Gente, eu estou com um problema de posicionamento de um botão,

0 - - - - - - -> x
| __________
| |__________|
|
|
v
y

essa são as coordenadas do componente

a posição do componente num container coincide com o [0,0] do component

Tem como eu alterar isso?

Por exemplo se eu der um setLocation num botão ao invez de posicionar pela quina dele posicionar pelo meio? ou pela outra quina?

4 Respostas

Marky.Vasconcelos

A resposta simples, não.

O ideal seria aprender a usar LayoutManagers, te facilitam bastante.

tabocu

viny disse que nao tinha como,
bom eu improvisei sobrescrevendo as funções de location do objeto:

@Override
    public Point getLocation(){
        int x = (int) (super.getLocation().getX() + super.getSize().getWidth() / 2);
        int y = (int) (super.getLocation().getY() + super.getSize().getHeight() / 2);
        return new Point(x,y);
    }
    
    @Override
    public void setLocation(int x, int y) {
        super.setLocation((int) (x-this.getSize().getWidth()/2),(int) (y-this.getSize().getHeight()/2));
    }

    @Override
    public void setLocation(Point p) {
        super.setLocation(new Point((int) (p.getX()-this.getSize().getWidth()/2),(int) (p.getY()-this.getSize().getHeight()/2)));
    }

e existe um motivo especial pela qual nao estou usando layout

acho que desse jeito resolve
mas é meio deselegante

ViniGodoy

Pois é, imagino que não.

Já que você está calculando coisas na mão, é bom conhecer os métodos d SwingUtilities. Não vão ajudar nesse caso, mas é bom saber que essa classe existe. :slight_smile:

tabocu

Interessante essa classe viny
bom mesmo saber que existe
obrigado cara =)

Criado 22 de dezembro de 2010
Ultima resposta 22 de dez. de 2010
Respostas 4
Participantes 3