PDA

View Full Version : [Java] creare cornice contenitiva


Dolcezeus
25-06-2010, 09:55
salve a tutti amici, vi scrivo perchè sto svolgendo un esercizio dove mi è richiesto di far muovere in posizioni casuali un piccolo bottone circolare in una jFrame il bottone si muove ma a volte capita che parte del cerchio sia fuori della finestra, avevo pensato quindi di creare un cornice rettangolare di dimensioni pari alla grandezza dello schermo-raggio che ne dite può funzionare? Avete altre idee?

banryu79
25-06-2010, 11:24
salve a tutti amici, vi scrivo perchè sto svolgendo un esercizio dove mi è richiesto di far muovere in posizioni casuali un piccolo bottone circolare in una jFrame il bottone si muove ma a volte capita che parte del cerchio sia fuori della finestra, avevo pensato quindi di creare un cornice rettangolare di dimensioni pari alla grandezza dello schermo-raggio che ne dite può funzionare? Avete altre idee?
Il bottone sarà anche visivamente circolare ma la sua area di clipping effettiva sarà la bounding box che lo contiene.
Non è che il problema sta nelle coordinate random-generate?
Controlla che gli intervalli validi per i quali generi quei numeri escludano le coordinate dello spazio occupate dai margini del container dove sono posizionati i tuoi JButton (getInsets()).

In altre parole se 'container' è il container dove posizioni i bottoni, e 'bSize' è un Dimension che rappresenta la dimensione dei tuoi bottoni, i valori minimi/massimi per le coordinate da generare sarebbero:

Dimension size = container.getSize();
Insets insets = container.getInsets();
int minX = insets.left;
int minY = insets.top;
int maxX = size.width - insets.right - bSize.width;
int maxY = size.height - insets.bottom - bSize.height;


@EDIT:
I valori calcolati sono riferiti al punto in alto a sinistra del bounding box del button (in altre parole alla sua location) non rispetto al suo centro.