2009-12-19 37 views
7

Esto me está volviendo loco. Cuando configuro un tamaño apropiado para mi ventana en modo de diseño, simplemente ignora este tamaño y usa algo más cuando compilo y corro. Aunque sea difícil, establezco el tamaño mínimo y el tamaño preferido simplemente ignora esto ... ¿Por qué? ¿Cómo puedo establecer mi propio tamaño?NetBeans (Java Swing): Establecer tamaño de ventana

+0

¿Está haciendo esto arrastrando con el mouse o está estableciendo una propiedad? –

Respuesta

6

Incluso si ha establecido el tamaño con minimumSize y preferredSize, que pudo haber olvidado a llamar Window.pack() en el que Swing cambiar el tamaño de los componentes (y todos los subcomponentes es) de acuerdo con los tamaños establecidos.

Lo llama en su ventana (o lo que sea que esté construyendo su ventana) después de establecer todos los tamaños preferidos.

Alternativamente puede utilizar el método Component.setSize() pero comes with some caveats.

+0

¿Podría explicarnos por qué debe hacerse esta llamada al paquete()? –

+0

Claro, se debe llamar a 'paquete()' después de que todo su diseño (establecer diseños, tamaños y posiciones) de su componente UI haya finalizado. Depende de dónde se encuentre el código para el diseño (generalmente en el constructor). – Spoike

1

¿Ha comprobado si realmente configuró el tamaño del JFrame o de un JPanel contenido?

¿Has probado setSize?

0

Me encontré en una situación similar mientras usaba netbeans ide. Tenía una lectura del siguiente hilo, que ayudó:

http://forums.netbeans.org/ptopic28011.html

parece como si el marco de aplicación swing es el ahorro de tamaño de la ventana de la aplicación en una subcarpeta dentro de su directorio home (para Windows, el "Datos de programa" carpeta, para Linux, en su carpeta de inicio "~ /").

Por ejemplo, para mi aplicación 'CrapApp', swing había guardado información de la última ventana en la subcarpeta "~/.CrapApp /", en un archivo llamado "mainFrame.session.xml".

Así que no importa cómo cambie el tamaño de la ventana dentro del diseñador, al ejecutarse, parece que lo ignoró y en su lugar cargó el tamaño de la ventana de las preferencias dentro de esta subcarpeta.

Así que mi solución era eliminar este-settings conservados subcarpeta, por ejemplo, en mi caso, "rm -rf ~/.CrapApp /"

Entonces, el problema desapareció y pude volver a tamaño dentro de el diseñador y ejecutar la aplicación con esta ventana de nuevo tamaño ahora visible.

Esto me hizo querer saber qué desencadenó este problema. Noté que simplemente ejecutando la aplicación dentro de netbeans ide y cerrándolo no generaba la subcarpeta.

Después de algunos retoques con mi aplicación, noté que la siguiente acción desencadenó la generación de esta subcarpeta "~/.CrapApp /".

  1. ir a casa de mi aplicación "Ayuda >> Acerca de"
  2. Haga clic en el botón "Cerrar" en el sobre de diálogo que aparece
  3. Salga de la aplicación

Y ahora el "~ /. La subcarpeta CrapApp/"vuelve a aparecer. Este diálogo de ayuda/sobre fue generado automáticamente por netbeans ide, así que realmente no lo retoqué, pero este parece haber sido el culpable en mi caso.

Quizás sea un error en netbeans ide, estoy usando una versión un tanto antigua (v6.8), que parece más o menos de la era de su publicación original también.

Cuestiones relacionadas