Usando il metodo GridLayout posso disporre i componenti secondo coordinate precise? Nel senso posso mettere due combox nella stessa colonna?
Usando il metodo GridLayout posso disporre i componenti secondo coordinate precise? Nel senso posso mettere due combox nella stessa colonna?
come?
una volta impostato il GridLayout come layout del tuo pannello, i componenti vengono aggiunti uno dopo l'altro, partendo da sinistra verso destra e dall'alto verso il basso. Se non hai componenti da mettere in tutte le celle, puoi agggiungere una semplice JLabel senza testo. Per maggiori chiarimenti specifica quanti componenti vuoi aggiungere e con quali coordinate,
Devo sistemare due JTextField sulla stessa riga con la stessa dimensione precedute da due label che mi indicano che tipo di campo sono, su l'altra riga devo mettere due JComboBox di dimensioni differenti ( non allineate alle JTextField ) e poi sulla stessa riga ci deve essere una JTextField però più piccola delle altre. Faccio uno schema per chiarire:
Prima_JTextField | | Seconda_JTextField | |
JComboBox | | | | Terza_JTextField | |
Una possibile soluzione è creare tre pannelli P, P1, P2 con:
P -> GridLayout con 2 righe e una colonna
P1 -> GridLayout con una riga e quattro colonne a cui aggiungere le due label con i due JTextField
P2 -> GridLayout con una riga e 3 colonne a cui aggiungere le 2 JComboBox e il JTextField
Infine aggiungi P1 e poi P2 a P
Ti viene una cosa del genere:
:ciauzcodice:_______________________________ |JLabel1|JTExt1|JLabel2|JTExt2| |_____________________________| |JCombo1 | JCombo2 | JText3 | |________|__________|_________|
Ma io non posso fare in modo che la mia JTextField sia 300px dal bordo dx, la JComboBox si a 400 px etc...? Senza che ci siano dei vincoli particolari?
Come definisco la grandezza di una JTextField ?
In questo caso devi settare il layout a null.
Successivamente per ciascun componente devi definirne le
dimensioni e la locazione.
Slack? Smack!
Un esempio?
JPanel panel = new JPanel();
panel.setLayout(null);
.
.
.
JLabel label = new JLabel("Label");
label.setBounds(10, 10, 100, 50);
.
.
.
panel.add(label);
Slack? Smack!