2011-06-24 10 views
26

estoy usando un GridLayout y mi código es el siguiente:¿Cómo puedo hacer que mis columnas tengan diferentes tamaños usando GridLayout en swing?

int changingVar = 1; 

JPanel panel = new JPanel(new GridLayout(changingVar, 2)); 
panel.add(new JButton("BUTTON1")); 
panel.add(new JButton("BUTTON2")); 

será similar a:

___________________________________________ 
| [  BUTTON1  ] [  BUTTON2  ] | 
___________________________________________ 

que es de dos columnas de igual tamaño. Me gustaría hacerlo de esta manera:

___________________________________________ 
| [   BUTTON1   ] [ BUTTON2 ] | 
___________________________________________ 

en el que una columna ocupa más espacio en el panel de la continuación de la otra. ¿Cómo hago esto con gridlayout? No me opongo a utilizar otro diseño, siempre que pueda tener una cantidad variable de filas y columnas de dos tamaños diferentes.

Gracias

Respuesta

19

Si desea este efecto, entonces usted necesita para utilizar el GridBagLayout.

http://download.oracle.com/javase/tutorial/uiswing/layout/gridbag.html

Diviértete con los que uno = P

EDIT:

Puede solucionar el problema mediante el empleo de una mezcla de FlowLayout y GridLayout para conseguir un efecto similar. Sin embargo, esta solución se volverá extremadamente tediosa y desordenada a medida que las complejidades de su diseño se hagan más grandes.

+1

He usado GridBag anteriormente, pero esperaba que hubiera solo una función adjust_column (column_num) para gridlayout – Grammin

+1

@Grammin Tenga en cuenta que no he estado al día con los cambios de la API de java en los últimos dos años. Habiendo dicho eso, he recorrido el mismo camino por el que te ibas. Hasta donde yo sé, los tamaños son uniformes en un GridLayout estándar. Por lo tanto, la adición de GridBadLayout que permite variar los tamaños de los elementos de columna y fila –

+0

Lo suficientemente bueno para mí, ¡Gracias! – Grammin

Cuestiones relacionadas