a todos, tengo un problema con el Java que he creado con el panel de cinco filas y una columna, también he añadido un botón a la una de la filas, finalmente he añadido este panel a la estructura, y he recibido botón que se estira para full frame, puedo reducir el tamaño del botón, he utilizado

myButton.setSize(10,10);

pero no parece funcionar, también puedo usar

frame.pack();

puede ser el problema, gracias de antemano

  • puedes publicar toda la gui de la creación de código?
InformationsquelleAutor rookie | 2011-01-31

3 Comentarios

  1. 3

    Usted debería abstenerse de establecer el tamaño. Usted debe seleccionar un adecuado LayoutManager que hace el trabajo para usted.

    (A menos que explícitamente hacer setLayout(null) los tamaños que se descarta y el diseño actual administrador asignará a los nuevos tamaños de los componentes.)

    Usted dice que usted está usando un GridLayout. Este diseño es bastante «unflexible», y si desea que los beneficios de GridLayout pero más flexibilidad, usted podría dar GridBagLayout una oportunidad.

    Si usted no encuentra un administrador de diseño que se adapta a sus necesidades, no tenga miedo de escribir su propio. (Es de cinco relativamente fácil métodos a implementar.)

    Si usted publica una captura de pantalla de la aplicación actual, y una explicación sobre cómo quiere que se vea, vamos a ser capaces de ayudarle.

    Algunos enlaces útiles

  2. 1

    Cuando usted está utilizando el diseño de los administradores (como GridLayout), a continuación, llama a setSize() generalmente no funcionan, porque el gestor de diseño en última instancia, decide cómo el tamaño y el lugar de cada componente en un contenedor.

    Lo que puedes hacer es llamar a setPreferredSize(), setMaximumSize() y/o setMinimumSize(). Dependiendo del gestor de diseño en el uso de una o más de estas solicitudes (porque eso es realmente lo son) será homenajeado. Cuando llame frame.pack() intentará tamaño de todo en el contenedor (subcontenedores) prefiere que se tamaños.

    Así que, en su caso, llamando myButton.setPreferredSize (10, 10); probablemente va a funcionar. Sin embargo, aún se cambia el tamaño si el contenedor cambia de tamaño. Si usted no quiere eso, hay otras soluciones me pueden enviar.

  3. 1

    Cuando aloobe parece tener una solución más general para usted. Yo diría que la solución inmediata sería agregar el botón a un JPanel, establecer el Layoutmanager un diseño como GridLayout, o de otro LayoutManager, si encuentra otro mejor te parezca.

    Y agregar este panel para su panel original, en lugar del botón.

    • Mi plazo para el que es un «anidadas distribución». Yo no podía imaginar la creación de un aplicables interfaz gráfica de usuario mediante cualquier diseño (ni siquiera GrievousBodilyLayout, oh disculpe – GridBagLayout).

Dejar respuesta

Please enter your comment!
Please enter your name here