
Ayuda con loyouts
Publicado por alex (1 intervención) el 08/02/2016 13:51:32
Hola, necesito que me ayudéis para terminar de comprender el uso del layout "gridbagLayout".
El tema es que he echo un programa con el siguiente aspecto(Usando el editor gráfico del netbeans):

Que me sale bien, pero claro, desearía que el programa estuviera en pantalla completa (dependiendo de cada pantalla) por lo que he puesto:
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
Entonces como se descuadra todo he empezado a modificar el panel sin nada añadiendo desde código los componentes e intentando ubicarlos de la siguiente manera:
Con lo que me sale:

Desearía que me dijerais como controlar esos espacios y que los componentes ocupen toda la pantalla.
No se si me he explicado muy bien.
Muchas gracias
El tema es que he echo un programa con el siguiente aspecto(Usando el editor gráfico del netbeans):

Que me sale bien, pero claro, desearía que el programa estuviera en pantalla completa (dependiendo de cada pantalla) por lo que he puesto:
this.setExtendedState(JFrame.MAXIMIZED_BOTH);
Entonces como se descuadra todo he empezado a modificar el panel sin nada añadiendo desde código los componentes e intentando ubicarlos de la siguiente manera:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
int etiquetaTara = 0;
int desplegable = 0;
int etiquetaPalet = 0;
int texto = 0;
JLabel[] etiquetasPalet;
JLabel[] etiquetasTara;
etiquetasPalet = new JLabel[26];
etiquetasTara = new JLabel[26];
JComboBox[] desplegables;
desplegables = new JComboBox[26];
JTextField textos[];
textos = new JTextField[52];
for (int i = 0; i < 52; i++) {
textos[i] = new JTextField(100);
//textos[i].setMinimumSize(minimumSize);
//textos[i].setVisible(true);
}
for (int i = 0; i < 26; i++) {
etiquetasPalet[i] = new JLabel("Tara " + (i + 1) + ":");
etiquetasTara[i] = new JLabel("Palet " + (i + 1) + ":");
desplegables[i] = new JComboBox();
}
GridBagConstraints constraints = new GridBagConstraints();
constraints.insets = new Insets(3, 3, 3, 3);
jPanel4.setLayout(new GridBagLayout());
//new Insets(arriba, izquierda, abajo, derecha);
//constraints.insets = new Insets(1, 3, 1, 3);
for (int i = 0; i < 12; i++) {
for (int j = 0; j < 10; j++) {
//System.out.println(i + "," + j);
constraints.gridx = j;
constraints.gridy = i;
constraints.gridwidth = 1;
constraints.gridheight = 1;
constraints.weightx = 1;
constraints.fill = GridBagConstraints.HORIZONTAL;
switch (j) {
case 0:
case 5:
//System.out.println("Palet" + etiquetaPalet);
jPanel4.add(etiquetasPalet[etiquetaPalet], constraints);
etiquetaPalet++;
break;
case 4:
case 9:
//System.out.println("Combo" + desplegable);
jPanel4.add(desplegables[desplegable], constraints);
desplegable++;
break;
case 2:
case 7:
//System.out.println("Tara" + etiquetaTara);
jPanel4.add(etiquetasTara[etiquetaTara], constraints);
etiquetaTara++;
break;
case 1:
case 3:
case 6:
case 8:
//System.out.println("TextField" + texto);
jPanel4.add(textos[texto], constraints);
texto++;
default:
break;
}
}
}
Con lo que me sale:

Desearía que me dijerais como controlar esos espacios y que los componentes ocupen toda la pantalla.
No se si me he explicado muy bien.
Muchas gracias
Valora esta pregunta


0