Newsgroup: it.comp.java
Titolo: Layout: AIUTO!!!

 
ICQ# 156068277

 
non saprei...
Edoardo

Strano, per caso non imposti affatto i constraints?
Li avevo impostati seguendo un esempio tratto dal tutorial della Sun,
ma grazie al tuo aiuto ho specificato qualche altro parametro che
avevo lasciato a default e speravo realmente di risolvere ed invece
nulla è cambiato.
Ora configuro: gridx, gridy, gridwidth, gridheight, weightx, weighty e
fill ma il risultato è sempre un incompensibile layout tutto
orizzontale mentre io lo volevo verticale.
Altre idee? E se postassi il codice?
Per la verià sarebbe un attimo complicato perchè per compilarlo
occorrono più files. Se magari qualcuno fosse così generoso da darci
un'occhiata spedirei in mailbox uno zippettino :)))
Confidando in un aiuto divino...


potresti provare settando a null il layout e dando dimensioni fisse ai
componenti con i rispettivi setBounds.
Non è il massimo...
--
Antonio Pelleriti
Brainbench Java Master: score 4.34,
higher than 99% of all previous test takers.

Non è il massimo...
Ciao Antonio,
Come dicevo sono completamente a secco di GUI e quindi se non provo a
farlo non posso rendermi conto del suggerimento che mi hai dato, ma
prima di accingermi a fare qualche test ti chiedo se in quel modo è
possibile che alcuni componenti siano ridimensionabili oppure si è
costretti ad una soluzione di finestra non dimensionabile.
Grazie comunque dell'interessamento.


Ciao MaHi.
Anche io ho avuto lo stesso problema (spero quindi di avere capito bene la
situazione) e l'ho risolto affiancando un'altro JPannel a quello contenente
i bottoni.
Se la prima situazione era questa, con un pannello...
_______
|             |
|             |
|______|
Ora la situazione è questa con due pannelli.
_______
|      |      |
|      |      |
|___|___|
Non devi fare altro che settare le dimensioni dei pannelli, perché prima
settandole non te le cambiava perché il pannello deve comunque adattarsi al
JFrame. Invece ora i due possono amministrarsi la larghezza del JFrame.
Ultimo consiglio, imposta anche la dimensione preferita del JFrame, senza
utilizzare l'autodimensionamento. Anche la programmazione con altri
linguaggi ha gli stessi problemi, in quanto la gestione è molto simile.
Infatti devi suddividere tutto prima in zone fatte di pannelli, e poi con
gli oggetti che ti servono. Se la soluzione che ti ho dato non risolve
completamente il problema, aggiungi un pannello anche sotto, così puoi
dimensionare efficacemente (anche se con un pò di prove) la dimensione dei
bottoni "cicciotti".
Spero di avere centrato il problema e la soluzione, byez!
Davide "Design" Muzzarelli

Ho già provato con BoxLayout e GridBagLayout senza cavarci i piedi.
[CUT]
Io non amo molto il GridBagLayout, ma prova a vedere se quello che 
segue ti va bene ;-)
import java.awt.*;
import javax.swing.*;
public class MaHi {
    public static void main(String[] args) {
        JFrame frame = new JFrame("MaHi");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(640, 480);
        frame.setContentPane(buildPanel());
        frame.setVisible(true);
    }
    private static JPanel buildPanel() {
        GridBagLayout gridBag = new GridBagLayout();
        GridBagConstraints c = new GridBagConstraints();
        JPanel main = new JPanel(gridBag);
        JComboBox box = new JComboBox();
        c.gridx = 0;
        c.gridy = 0;
        c.gridwidth = 2;
        c.weightx = 1.0;
        c.fill = GridBagConstraints.BOTH;
        gridBag.setConstraints(box, c);
        main.add(box);
        JTextField tf1 = new JTextField();
        c.gridy = 1;
        gridBag.setConstraints(tf1, c);
        main.add(tf1);
        JTextField tf2 = new JTextField();
        c.gridy = 2;
        gridBag.setConstraints(tf2, c);
        main.add(tf2);
        JScrollPane sc1 = new JScrollPane(new JTextArea());
        c.gridy = 3;
        c.weighty = 1.0;
        gridBag.setConstraints(sc1, c);
        main.add(sc1);
        JTextField tf3 = new JTextField();
        c.gridy = 4;
        c.gridwidth = 1;
        c.weighty = 0.0;
        gridBag.setConstraints(tf3, c);
        main.add(tf3);
        JTextField tf4 = new JTextField();
        c.gridy = 4;
        c.gridx = 1;
        gridBag.setConstraints(tf4, c);
        main.add(tf4);
        JTextField tf5 = new JTextField();
        c.gridy = 5;
        c.gridx = 0;
        gridBag.setConstraints(tf5, c);
        main.add(tf5);
        JTextField tf6 = new JTextField();
        c.gridx = 1;
        gridBag.setConstraints(tf6, c);
        main.add(tf6);
        JScrollPane sc2 = new JScrollPane(new JTextArea());
        c.gridy = 6;
        c.gridx = 0;
        c.gridwidth = 2;
        c.weighty = 1.0;
        gridBag.setConstraints(sc2, c);
        main.add(sc2);
        return main;
    }
}
HTH
-- 
Ciao
	Fabrizio C.

segue ti va bene ;-)
[cut]
scusate ragazzi ma vi devo un GRAZIE enorme e delle scuse. Il grazie è
per l'aiuto impagabile che alla fine mi ha fatto risolvere il
problema, le scuse sono per il fatto che il problema era tutto dovuto
ad un mio marchiano errore. Il progetto era partito da un file di un
esempio su cui pian piano ho incastonato il mio. Nel main suddetto
file il JFrame veniva diviso in due metà con uno splitPane ed alle due
metà veniva dato un comando setLayout.
Nelle prime prove per coincidenza tutto funzionava poi quando ho
cominciato a sviluppare il mio pannello "su misura" da mettere nella
metà sinistra ho cominciato a rilevare il fastidioso errore.
E dire che alla fine ci ho perso sopra qualche ora a provare e
riprovare, rileggermi le API, ecc.
Grazie ancora.
