JPanel e resize

Stato
Discussione chiusa ad ulteriori risposte.

Varro

Utente Silver
29 Aprile 2008
47
6
0
68
Ciao ragazzi, oggi sto rompendo un poco troppo, accantonata la discussione precedente (i miei colleghi mi hanno detto, le lasciamo così come stanno le caselle) mi è venuta l'idea malsana di fare il resize del panel in questione.
Unico problema, deve essere quadrato, quindi il resize non deve essere indiscriminato, qualcuno di voi ha affrontato un problema simile?

EDIT: avevo pensato ad una cosa del tipo, actionlistener che intercetta il tentativo di resize e fa calcolare larghezza e lunghezza da un metodo, ma mi sembra inutilmente laborioso... :omfg:

@edit:dark shadow p.s tag
 
Usi Netbeans? In questa caso basta che fai tasto destro sul jPanel -> events -> component -> componentResized , poi dentro alla funzione assegni all'altezza la stessa larghezza.

No, non conosco il Java, me l'ha detto un altro =)
 
bhe la parola fuonzione l'hai messa tu o te la detta sempre quello?xkè in java non esistono funzioni,ma metodi :asd:!cmq con netbeans è sempre tutto più semplice...io tutto il codice lo scrivo sempre a mano!
 
Dai razor a rigor di logica un metodo non è altro che una funzione :p se dicevo procedura avevi tutti i motivi per avercela :)
In ogni caso sviluppo con eclipse, però almeno è un punto di partenza, grazie mixer

EDIT:
Usi Netbeans? In questa caso basta che fai tasto destro sul jPanel -> events -> component -> componentResized , poi dentro alla funzione assegni all'altezza la stessa larghezza.

Ripensando al tuo messaggio, allora è come ho pensato io, sostanzialmente è una funzione associata all'evento, googlando ho letto del discorso netbeans che hai riportato ma avrei preferito un esempio di codice :(
Per ora, per una questione di pulizia, preferisco le interfacce scritte interamente a manina, però sto dando un occhio a NetBeans, interessante davvero anche se adoro eclipse :p
 
varro sei mi spieghi cosa vuoi fare magari ti do una mano...non ho capito ancora cosa vuoi fare!
Allora io programmo in in un linguaggio e invece di dire variabile dico un coso che cambia...che senso ha...ci sono determinati termini da rispettare su ogni lunguaggio!
 
R4z0r_Cr4$H ha detto:
varro sei mi spieghi cosa vuoi fare magari ti do una mano...non ho capito ancora cosa vuoi fare!
Allora io programmo in in un linguaggio e invece di dire variabile dico un coso che cambia...che senso ha...ci sono determinati termini da rispettare su ogni lunguaggio!

Ti ringrazio, volevo fare questo tipo di resize a proporzioni fisse ma parlando i prof hanno detto che è molto più che sufficente la GUI che abbiamo sviluppato due giorni fa :omfg: ci stiamo concentrando su altro :)
Riguardo alla disquisizione sulla correttezza del termine metodo in questione... e non cavillareeeeeeeee che un metodo alla fine non è che un'astrazione di funzione :p
A parte gli scherzi ti spiego comunque ciò che volevo realizzare perchè vorrei lavorarci da solo con calma a tempo perso.
Praticamente immagina la tavola del monopoli, è quadrata. Il resize permette a questa tavola di avere dimensioni anche rettangolari no?
Col mio gruppo volevamo forzare un resize che lasciasse inalterate le proporzioni del jpanel all'interno del frame e che quindi fosse sempre quadrato, al limite allego una screenshot se può essere di interesse.

Inoltre avevo realizzato la tavola con un gridlayout come da disposizioni del prof, anche se avevo pensato ad un GridBagLayout per avere una maggiore flessibilità.
La tavola è sostanzialmente di 11x11 caselle, e non riuscivo a forzare in gridbaglayout una dimensione uguale per tutte le celle.
Insomma l'incontro con le swing è stato traumatico :p
 
provato a settare il layoutManger a null tipo:
Codice:
setLayout(null);
e impostando le grandezze e le posizioni degli oggetti manualmente con il metodo
Codice:
setBounds(int x,int y,int width,int height)
Comunque sia ribadisco la cosa...si chiamano metodi che possono essere associati concettualmente alle funzioni ma nella programmazione ad oggetti il termine funzione non esiste!
 
Neanche Mixx mi fai difendere... -.-"

Codice:
public void setBounds(int x,
                      int y,
                      int width,
                      int height)

    Moves and resizes this component. The new location of the top-left corner is specified by x and y, and the new size is specified by width and height.

    Parameters:
        x - the new x-coordinate of this component
        y - the new y-coordinate of this component
        width - the new width of this component
        height - the new height of this component

tecnicamente mi stai dicendo di impostare a mano il tutto, ma se imposto larghezza e lunghezza, non finisce che le celle della griglia, che a questo punto devo farmi a manina, al momento del resize rimangano di quelle dimensioni?
A sto punto tanto vale mettere assegnare lunghezza e larghezza fisse e annullare la possibilità di resize, sprecherei meno fatica, o sto sbagliando ragionamento (propenderei per quest'ultima ipotesi)
 
Stato
Discussione chiusa ad ulteriori risposte.