grazie mille per la disponibilità!!! continuerò a postare se non mi è chiaro qualcosa sperando che voi continuerete a rispondere!!ciao![]()
grazie mille per la disponibilità!!! continuerò a postare se non mi è chiaro qualcosa sperando che voi continuerete a rispondere!!ciao![]()
scusatemi se vi disturbo nuovamente ho visot i vari tipi di layout
1)gridlayout che fa la griglia
2)borderlayout che permette di posizionare sui 4 lati
3)flowlayout che mi mette tutto sulla stessa riga.
4)gridbaglayout usato principalemte quando si crea l'applet in maniera visuale.
alla fine non so quale usare perchè nessuno di questi si adatta a ciò che devo fare e cioè, inserire sulle prime tre righe delle jtextfield, nelle altre righe inserire dei jbutton in maniera raggruppata e mettere poi una jtextarea che prenda tutta la finestra.
quindi come faccio???
grazie
In genere si fa una cosa come le "scatole cinesi" ... una dentro l'altra.Originariamente inviato da cluadia
alla fine non so quale usare perchè nessuno di questi si adatta a ciò che devo fare e cioè, inserire sulle prime tre righe delle jtextfield, nelle altre righe inserire dei jbutton in maniera raggruppata e mettere poi una jtextarea che prenda tutta la finestra.
quindi come faccio???
Esempio: nel BorderLayout.NORTH metti un JPanel che ha come layout un GridLayout, al cui interno magari nella prima cella metti un altro JPanel con un FlowLayout, ecc....
Insomma, dentro un layout puoi mettere anche componenti (es. JPanel) che a sua volta possono contenere altri componenti, magari gestiti con un altro layout.
Quindi ... inscatola, inscatola, inscatola.![]()
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ok quindi facendo così
vedo i bottoni l'uno di fianco all'altro, ma se li volessi veder incolonnati? e se volessi lasciare dello spazio tra i bottoni? e se volessi aggiungere più pannelli nel borderlayout.south, si può???? grazie per la disponibilità, buona gironatacodice:pannello=new JPanel(); pannello.setLayout(new GridLayout()); add(pannello, BorderLayout.SOUTH); pannello.add(pippo); pannello.add(pluto); pannello.add(paperino);
spero che claudia non si offenda se approfitto del suo topic per esporre un mio problema, perchè se associo alla pressione di un bottone l'apertura di un filechooser questo non viene aperto??
public void init(){
this.setLayout(null);
this.setSize(300, 300);
....
invia = new JButton("Invia");
invia.setBounds( inviaX, inviaY, largInv, altezza);
invia.setForeground(Color.DARK_GRAY);
invia.addActionListener(this);
this.add(invia);
....
}
public void actionPerformed (ActionEvent e) {
invia.setForeground(Color.BLUE);
fileChooser = new JFileChooser();
int response = fileChooser.showOpenDialog(this);
....
....
}
Vedi i costruttori di GridLayout:Originariamente inviato da cluadia
ma se li volessi veder incolonnati? e se volessi lasciare dello spazio tra i bottoni?
GridLayout(int rows, int cols)
e
GridLayout(int rows, int cols, int hgap, int vgap)
nonché i metodi
void setHgap(int hgap)
void setVgap(int vgap)
Ad ogni componente comunque puoi impostare dei bordi speciali, vedi il metodo void setBorder(Border border) di JComponent e vedi la classe javax.swing.BorderFactory
Nel BorderLayout.SOUTH metti 1 JPanel che ha ad esempio un GridLayout di NxM celle in cui in ogni cella metti un ulteriore JPanel, ecc...Originariamente inviato da cluadia
e se volessi aggiungere più pannelli nel borderlayout.south, si può????
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
allora dovrei far visualiizare 6 bottoni, posizionionati i primi tre in un colonna e gli altri nella colonna successiva, se scrivo questo
mi appaiono tutti nella stessa colonna ed inoltre nn in basso alla alla japplet ma a destra.codice:pannello=new JPanel(); add(pannello, BorderLayout.SOUTH); pannello.setLayout(new GridLayout(3,3)); pannello2=new JPanel(); pannello2.setLayout(new GridLayout(3,1)); pannello3=new JPanel(); pannello3.setLayout(new GridLayout(3,1)); pannello.add(pannello2); pannello.add(pannello3);
dove sbaglio????
grazie ancora
Ma scusa, se devi avere una griglia di 3x2 pulsanti, perché creare un pannello che contiene 2 pannelli ognuno con 3 pulsanti???Originariamente inviato da cluadia
allora dovrei far visualiizare 6 bottoni, posizionionati i primi tre in un colonna e gli altri nella colonna successiva
Basta che crei un JPanel con un GridLayout di 3x2 e poi ci inserisci i 6 pulsanti!
Esempio di una applicazione:
codice:import java.awt.*; import javax.swing.*; public class TestFrame extends JFrame { public TestFrame () { super ("Prova"); setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); setSize (300, 300); JPanel panel = new JPanel (new GridLayout (3, 2)); add (panel, BorderLayout.SOUTH); panel.add (new JButton ("sinistra 1")); panel.add (new JButton ("destra 1")); panel.add (new JButton ("sinistra 2")); panel.add (new JButton ("destra 2")); panel.add (new JButton ("sinistra 3")); panel.add (new JButton ("destra 3")); } public static void main (String[] args) { SwingUtilities.invokeLater (new Runnable() { public void run () { TestFrame f = new TestFrame (); f.setVisible (true); } }); } }
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
ciao,
il mio problema è che nella parte south dovrei avere sia questi 6 bottoni incolonnati,sia una altro bottone che sta per i fatti suoi, sia altri due che dovrebbero trovati a sud-ovet dell'applet!!!
quindi in questi casi come si fa???
grazie
ciao, nel post precedente ho dimenticato di dire che se creo un solo pannello 3*2 i bottoni contenuti occupano tutto lo spazio, invece io dovrei avere dei bottoni più piccoli, inoltre come faccio a bloccare ad esempio le textarea o i vari bottoni?? perchè se modifico la gradezza dell'applet questi si spostano.grazie mille ciao claudia