PDA

Visualizza la versione completa : [JAVA] Gestore di layout


Tommaso
26-08-2004, 18:20
Ciao,
sto usando Borderlayout come gestore di layout. Vorrei dare un allineamento verticale ai textfield, che sto inserendo in una delle 5 sezioni, ma nn ci riesco perche' li posiziona in orizzontale. Non ho trovato nulla che mi cambi questa dosposizione... come posso fare?

E possibile poi decidere dove posizionare ogni singolo componente (textfield, bottone ecc..) oppure un oggetto Panel specificando coordinate nella finestra??

L'utlima domanda : Esistono Radio button nell' AWT?


Grazie!

anx721
26-08-2004, 20:08
Innanzitutto sconsigliato posizionare gli elementi dell'interfaccia grafica specificando direttamente le coordinate, perche si perdono tutti i vantaggi offerti dai layout manager, con cui si pu fare la stragrande maggioranza delle cose. Ad esempio per ottenere l'effetto da te voluto, non inserire direttamente i 5 textfieled nella zona che ti interessa; piuttosto crea un pannello in cui imposti un grid layout con 5 righe; in ciascuna riga metti un campo di testo, allinenandoli cosi tutti in verticale; infine aggiungi il pannello nella zona in cui prima aggiungevi i textfield. Questa una tecnica del tutto generale per posizionare i componenti in modo efficace, ovvero comporre piu pannelli con diversi layout.

Quanto al radio button e all'awt...consulta la documentazione...non si puo programmare in java senza avere la documentazione sotto mano!

Infine ti consiglio caldamente ti usare swing al posto di awt,

:ciauz:

Tommaso
27-08-2004, 02:04
Ho capito, pero' visto che sono alle prime armi mi dovresti dire per pannello che intendi???

Grazie.

anx721
27-08-2004, 02:13
Un Panel (o JPanel se usi swing); semplicemente un contenitore per disporre componenti,

:ciauz:

Tommaso
27-08-2004, 13:57
Avevo capito che ti riferivi al panel... Intendevo all' interno del panel come disporli in verticale.

Grazie

Gil Mour
27-08-2004, 14:48
te l'ha gi detto :)

invece di piazzare i componenti direttamente nella zona gestita dal broder layout, aggiungi prima un JPanel, gli setti il layout manager grid layout con 5 righe, e all'interno di questo jpanel metti le textfield

devi fare una cosa del genere



class finestra extends JFrame {

public finestra () {
super();
JPanel pannello = new JPanel();
pannello.setLayout(new GridLayout(5,1));

// qui dichiari le 5 textfield
JTextField text1 = ...
[...]

//adda le textfield nel pannello
pannello.add(text1) ...
[...]

getContentPane().setLayout(new BorderLayout());
getContentPane().add(pannello,BorderLayout.CENTER) ;

show();

}


}

Tommaso
27-08-2004, 15:29
Grazie l'avevo fatto :prrr:

Grazie ancora :)

vlr
27-08-2004, 23:56
Se hai un'unica riga o un'unica colonna tanto vale che usi il BoxLayout.

JPanel panel = new JPanel();
BoxLayout bl = new BoxLayout(panel, BoxLayout.Y_AXIS);
panel.add(componente 1);
...
panel.add(componente n); ottieni tutto in una colonna oppure per averlo su una riga

JPanel panel = new JPanel();
BoxLayout bl = new BoxLayout(panel, BoxLayout.x_AXIS);
panel.add(componente 1);
...
panel.add(componente n);

Loading