2011-08-24 8 views
9

¿Cómo solo cambio el ancho o la altura de un componente que requiere un objeto Dimension? Actualmente lo hago así:Dimensión, solo cambiando el ancho/alto

jbutton.setPreferredSize(new Dimension(button.getPreferredSize().width, 100)); 

Pero tengo la sensación de que lo estoy haciendo mal. ¿Cuál es la mejor manera de abordar esto si hay una manera mejor?

+5

el error básico es llamar a setPreferredSize con cualquier dimensión ;-) Interferirás con cualquier cálculo de sugerencia de tamaño interno en una parte del componente. Simplemente: no, nunca jamás. En su lugar, use un LayoutManager decente. – kleopatra

Respuesta

2

Terminé haciéndolo como Kleopatra dijo. No cambia el tamaño preferido, sino que permite que el administrador de diseño haga el trabajo. Dado que esta es la forma correcta de cambiar el tamaño de un componente.

+2

no pudo resistirse a comentar, mi compilador de gramática está lanzando un error 'SentenciaFragmento' (pero voy a mantener mis manos sucias de su publicación) :) – Ben

13

En primer lugar, no está cambiando la dimensión de JButton. Está especificando el tamaño preferido deseado, que eventualmente se puede aplicar a su JButton dependiendo del Administrador de diseño del componente en el que está insertado.

Por lo que respecta al uso del objeto Dimension, está bien. Eventualmente puede acceder directamente al campo Dimensión:

Dimension d = button.getPreferredSize(); 
d.height = 10; 
jbutton.setPreferredSize(d); 

pero eso es más o menos lo mismo.

+0

@Patrick: tal vez no he entendido tu pregunta. – Heisenbug

+0

Ha realizado una modificación a su pregunta y ahora responde la pregunta. Parece que no puedo eliminar el comentario anterior, por lo que le agradezco su respuesta más reciente. – Patrick

-1

Puede hacerlo de esta manera:

jbutton.getPreferredSize().height = 100; 

Tome en cuenta que la propiedad preferredSize solamente es utilizado por ciertos controladores de distribución.

+0

No puede hacer esto porque getPreferredSize() puede devolver una copia del tamaño preferido. – ceklock

Cuestiones relacionadas