Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/06/2018, 05:35
TrinityCore
 
Fecha de Ingreso: agosto-2015
Ubicación: Rosario - Argentina
Mensajes: 424
Antigüedad: 8 años, 8 meses
Puntos: 12
GridBagLayout - Dudas

Buenas a todos!

Veran, estoy hace 1 dia intentando crear un formulario muy simple con tan solo 5 campos de texto y sus correspondientes Labels, pero me encuentro en un problema con el GridBagLayout

He visto un video en YouTube de como usarlos, pero la verdad es que no funciona como lo mustran.

Ejemplo:
Código Java:
Ver original
  1. // DENTRO DE MI CLASE QUE HEREDA DE JPanel //
  2.  
  3. this.setLayout(gbl);
  4.  
  5.  
  6. JLabel LB1 = new JLabel("Label 1");
  7. JLabel LB2 = new JLabel("Label 2");
  8. JLabel LB3 = new JLabel("Label 3");
  9. JLabel LB4 = new JLabel("Label 4");
  10. JLabel LB5 = new JLabel("Label 5");
  11. JTextField TEXT1 = new JTextField("TEXT 1");
  12. JTextField TEXT2 = new JTextField("TEXT 2");
  13. JTextField TEXT3 = new JTextField("TEXT 3");
  14. JTextField TEXT4 = new JTextField("TEXT 4");
  15. JTextField TEXT5 = new JTextField("TEXT 5");
  16.  
  17. // A OJO ESTA ES LA ESTRUCTURA QUE REQUIERO CONSEGUIR
  18. //
  19. // LABEL 1:  [__________]     LABEL 2:  [__________]
  20. //
  21. //
  22. // LABEL 3:  [__________]
  23. //
  24. //
  25. // LABEL 4:  [__________]
  26. //
  27. //
  28. //               LABEL 5:  [__________]
  29. //
  30. //
  31. //
  32. //                  [        BUTTON        ]
  33.  
  34. // AQUI "DIBUJO" LA PRIMER LINEA CON LOS LABELS 1 a 2 y TEXTS 1 a 2 (O ESO PRETENDO) //
  35.  
  36. gbc.gridx = 0;
  37. gbc.gridy = 0;
  38. this.add(LB1, gbc);
  39. gbc.gridx = 2;
  40. this.add(TEXT1, gbc);
  41. gbc.gridx = 6;
  42. this.add(LB2);
  43. gbc.gridx = 8;
  44. this.add(TEXT2);

Bien, ese es un pequeño ejemplo, la cosa es que en el video, la persona colocaba un elemento por ejemplo en la gbc.gridx = 0; y el campo de texto que debe ir al lado en el gbc.gridx = 2; y se creaba un espacio entre esos objetos.

En mi caso, eso no pasa, ni en X ni en Y, tampoco sirve el gbc.gridwidth o gbc.gridheight y ni hablar del gbc.fill

Ese espacio se respeta solo si coloco un elemento vacio que no se vea, o hago espacio dentro del objeto label new JLabel("LB1: ") de esa forma.

Pero para completar el palo, siquiera eso se puede hacer, porque al colocar 5 gbc.gridx los demas pierden su grid y los espacios desaparecen...

En conclusion, hace un dia entero que intento hacer un formulario sencillo y no encuentro la herramienta adecuada.

Segun el video eso deberia de funcionar asi, pero no lo hace.

La pregunta es ¿que estoy haciendo mal?, o ¿porque no funciona?
¿como puedo hacer un formulario tan sencillo como ese?

Tampoco me sirvio Box porque por algun motivo no funciona, y si lo se...
Es meter cajitas una dentro de otra, pero la logica con la que deberia de funcionar para mi, ps no lo hace en lo absoluto, siquiera puedo alinear los objetos que aparecen debajo de los primeros labels porque si el campo es mas largo que el otro quedan desalineados.

asi que... todo un reto

¿que me recomiendan?