Java - Problemas GridLayout
-
21-09-2019 - |
Pregunta
Estoy haciendo un proyecto escolar y necesita ayuda con el diseño porque está haciendo algunas cosas de moda.
Sólo necesito ayuda con el panel sur. El tablero sur se organiza algo como esto:
JRadioButton JLabel1 JLabel2
JRadioButton JLabel1 JLabel2
JLabel3--------JTextField----------JButton
He intentado lo siguiente:
- Establecer los JPanel al sur a un GridLayout con 3 filas
- Otro JPanel también con un GridLayout con 3 filas añadidas a la primera fila de la GridLayout.
- Repetir # 2 con la segunda y tercera filas. La segunda fila tiene 3 filas por 3 columnas.
- Añadido los componentes apropiados en las filas / columnas.
No formatear la forma en que lo necesite. He intentado algunas otras técnicas que no puedo recordar. ¿Alguna sugerencia? Gracias. Aquí hay una foto de lo que el tablero sur debe verse como: http: //www.freeimagehosting. net / image.php? d14a73db5e.jpg
Se inicia en la "fecha de inicio ..."
Solución
Crear un nuevo JPanel
y usar grupo Diseño para eso.
gusta esta http://img163.imageshack.us/img163/1403/capturadepantalla201001bo .png
Usar diseño de grupo le permite especificar los componentes que irán en el grupo horizontal y los componentes que irán en el grupo vertical.
c1, c2, c3
c4, c5, c6
panel[ c7, c8, c9 ]
Así es como me Layout la imagen de arriba:
// Layout Horizontal components
layout.setHorizontalGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent( c1 )
.addComponent( c4 )
).addGroup(
layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent( c2 )
.addComponent( c5)
).addGroup(
layout.createParallelGroup(GroupLayout.Alignment.LEADING)
.addComponent( c3 )
.addComponent( c6 )
)
);
// Layout vertical components
layout.setVerticalGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent( c1 )
.addComponent( c2 )
.addComponent( c3 )
).addGroup(
layout.createParallelGroup(GroupLayout.Alignment.BASELINE)
.addComponent( c4 )
.addComponent( c5 )
.addComponent( c6 )
)
);
southPanel.add( panel ); // the start-end dates
southPanel.add( bookIt, BorderLayout.SOUTH ); // the enter your name...
Darle una oportunidad.
Otros consejos
Lo que haría por el sur JPanel es que sea una cuadrícula de 1x3, a continuación, añadir los tres componentes de la primera fila en una caja horizontal y añadirlo a la red, a continuación, los tres componentes de la segunda fila en otra caja horizontal y añadirlo a la red, a continuación, los tres componentes de la tercera fila en una cuadrícula de 3x1 y añadirlo a la red. A continuación, puede ajustar el aspecto exacto que desea para las dos primeras líneas mediante la adición de varios componentes de la cola y de puntal.
alcanzo la mayoría de mis diseños poniendo JPanels o cajas dentro de otras con diferentes diseños. Esto le da muy buen control sobre lo que quiere, y le permite construir encima de una pieza a la vez.
Parece que te gustaría un GridLayout con 3 columnas , no 3 filas para el panel inferior allí.
En la imagen en el enlace que se incluye, el campo de texto es más ancho que el JLabel o el botón. Es posible que desee probar un GridBagLayout lugar.
Recientemente yo nos topamos con MigLayout, voy a tratar de usarlo en mi próximo proyecto universitario y Yo te aconsejo a darle un tiro también se ve muy fresco y sencillo.