24/07/2009, 10:46
|
| Colaborador | | Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes Puntos: 454 | |
Respuesta: cómo modificar tamaño FlowLayout o BorderLayout? Hola:
No estaría de más que pusieras qué es pPrincipal y dónde lo pones.
Si metes cualquier componente dentro de otro componente que tiene un Layout, ese layout se encarga de dar tamaño y posición al componente, por lo que llamar a setSize(), setBounds() o cualquier otra variante no sirve de nada. El layout llamará después a los mismos métodos poniéndoles el tamaño que quiera.
Sin embargo, el layout tiene cierta "cortesía" con los componentes y antes de fijarles un tamaño, les pregunta por su getPreferredSize() y lo respeta, siempre que el tamaño de la ventana y la naturaleza del layout lo permitan.
Si quieres que un componente tenga un tamaño determinado dentro de un layout, lo más seguro es heredar de dicho componente y sobreescribir el método getPreferredSize() para que devuelva lo que tú quieras. Si en vez de heredar llamas a setPreferredSize(), puede funcionar o no, dependiendo del componente. Algunos, en su getPreferredSize() devuelve lo que le has pasado en su setPreferredSize(). Otros (como los paneles o componentes más complejos), en su getPreferredSize() echan unas cuentas con su contenido para decidir cual es su tamaño adecuado.
Otra opción sin heredar que también puede funcionar es llamar a setMinimumSize() y setMaximumSize(), haciendo que ambos sean el tamaño que quieres. El Layout también consulta getMinimumSize() y getMaximumSize() para ver qué tamaño da al componente y normalmente, los componentes, si devuelven en los get lo que les pasas en los set.
Se bueno. |