|
|
|
|
Strumenti |
04-09-2009, 14:17 | #1 |
Member
Iscritto dal: Jan 2009
Città: Trento
Messaggi: 81
|
[JAVA] Conoscere dimensione di un JPanel
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? |
04-09-2009, 14:43 | #2 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
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.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
04-09-2009, 14:45 | #3 |
Member
Iscritto dal: Jan 2009
Città: Trento
Messaggi: 81
|
il codice che ho scritto è questo:
Codice:
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); } } |
04-09-2009, 14:53 | #4 |
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Prova così:
Codice:
protected void paintComponent(Graphics g){ super.paintComponent(g); g.drawOval(getWidth()-r/2, getHeight()-r/2, r, r); }
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
04-09-2009, 14:59 | #5 |
Member
Iscritto dal: Jan 2009
Città: Trento
Messaggi: 81
|
perfetto, grazie mille!
|
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:36.