PDA

View Full Version : [JAVA] Conoscere dimensione di un JPanel


Cory
04-09-2009, 14:17
Ciao a tutti. Ho un problema: sto realizzando un'applicazione con layout liquido, formata da un JFrame che contiene un JPanel. Il Jpanel deve avere al centro un cerchio. Poichè il layout è liquido, mi serve che il cerchio sia sempre al centro anche quando modifico le dimensioni del frame. Volevo quindi salvare in una variabile le dimensioni del JPanek ma non ho trovato nessun metodoche me lo faccia fare. usando getSize(); mi viene sempre 0 come risultato..

qualcuno sa aiutarmi?

PGI-Bis
04-09-2009, 14:43
getSize restituisce un valore diverso da zero nel momento in cui il la radice dell'albero di proiezione a cui è connesso il componente, su cui il predetto metodo è invocato, diventa proiettabile.

Approssimando si potrebbe dire "quando la finestra si apre sullo schermo".

Prima di quel momento i componenti standard non hanno una dimensione reale.

Cory
04-09-2009, 14:45
il codice che ho scritto è questo:

class MioPannello extends JPanel{

int r=Integer.parseInt(input.getText());
Dimension panelSize;
int width, height;


MioPannello(){setBackground(Color.GRAY);
panelSize=getSize();
width=(int)panelSize.getWidth();height=(int)panelSize.getHeight();
System.out.println(width+" "+height);
}

protected void paintComponent(Graphics g){

super.paintComponent(g);
g.drawOval(width-r/2, height-r/2, r, r);

}
}

tuttavia non riesco a capire dove stia l'inghippo..

PGI-Bis
04-09-2009, 14:53
Prova così:

protected void paintComponent(Graphics g){

super.paintComponent(g);
g.drawOval(getWidth()-r/2, getHeight()-r/2, r, r);

}

Cory
04-09-2009, 14:59
perfetto, grazie mille!