accosimo ha scritto:
sisi ne ho tenuto conto, ma comunque le coordinate del top left corner (x,y) del rect che mi restituisce sono (0,0)
Sì, ok era solo per chiarire. Anche ad esempio sul mio sistema inizia a (0,0), dopotutto su Windows è più raro che qualcuno metta toolbar in alto/sinistra/destra.
accosimo ha scritto:
io non ho utilizzato nessun gridLayout ora che mi ci fai pensare, non ci ho pensato e non credevo servisse. Ho direttamente preso un JPanel pan, ci ho "aggiunto" i 6 mieiPannelli() come fossero una matrice 3x2, ognuno con base un terzo della dimensione orizzontale dello schermo e di altezza un mezzo della dimensione verticale dello schermo in modo da occupare il maggior spazio possibile a loro disposizione e poi ho passato il JPanel pan al contentPane
Tecnicamente, la dimensione "reale" del content pane la puoi anche ottenere, se vuoi. Basta che dopo aver dimensionato il JFrame (setSize), rendi il frame "displayable" (dalla documentazione javadoc:
A component is displayable when it is connected to a native screen resource.) utilizzando setVisible(true) (vale anche con pack() ma in questo caso non è questo che ti serve).
Appena dopo che hai fatto setVisible(true) sul JFrame, la dimensione "reale" del content pane è disponibile.
Ma il punto è che se non usi un layout manager, devi farti comunque un po' di calcoli.
accosimo ha scritto:
tornando al tuo consiglio, mi proponi di utilizzare un gridLayout visto che questo fa in modo di dividere automaticamente lo spazio a disposizione nel JFrame (ipotizzando che il JFrame è inizializzato a tutto schermo)? giusto?
Sì, sarebbe molto meglio se usi un layout manager e visto che hai parlato di griglia 3x2, il GridLayout è appropriato. Tieni comunque presente, che siccome tu imponi la dimensione del JFrame, il GridLayout andrà a suddividere quella dimensione (meno bordi, menù ...) senza domandare nulla, riguardo le dimensioni, ai componenti contenuti.
accosimo ha scritto:
mi devo andare a vedere la documentazione visto che non è mia abitudine (a questo punto cattiva abitudine) utilizzare il gridLayaut...
Detto in generale: salvo casi davvero particolari (che esistono certamente), sarebbe sempre meglio sfruttare uno o più layout manager. È meno facile riuscire a individuare subito il/i layout manager adatto/i per un certo layout ma alla lunga hai molti vantaggi (meno calcoli, codice più pulito, ridimensionamento automatico).