2011-01-16 17 views
5

Estoy haciendo un juego, así que quiero que el JFrame comience a maximizarse, pero tampoco quiero que los usuarios cambien el tamaño del juego, ya que podría arruinar los gráficos. Me pregunto cómo hacer ambas cosas al mismo tiempo?¿Maximiza y evita el cambio de tamaño en un JFrame?

En este momento, puedo usar JFrame.setExtendedState (JFrame.MAXIMIZED_BOTH) para maximizar, pero tan pronto como lo haga JFrame.setResizeable (falso), no puedo usar setExtendedState() para maximizarlo nunca más.

Me doy cuenta de que puedo maximizarlo, almacenar el ancho y la altura, y luego usar eso, pero si es posible, preferiría que la ventana parezca que está maximizada. La barra de título cambia cuando se maximiza frente a cuando tiene el tamaño justo para llenar la pantalla, si alguien sabe de lo que estoy hablando.

Respuesta

6

Esto funciona para mí:

frame.setExtendedState(JFrame.MAXIMIZED_BOTH); 
frame.setVisible(true); 
frame.setResizable(false); 
+1

¡Gracias, eso funcionó! Antes, tenía setVisible() bajo setResizeable(), y falló, aunque no tengo idea de por qué podrían interferir entre sí. –

3

Si está utilizando JSR296 esta es la forma en que funciona dentro de la clase de aplicación Singleton:

JFrame main = view.getFrame(); 
    main.setExtendedState(JFrame.MAXIMIZED_BOTH); 
    main.pack(); 
    show(view); 
    main.setResizable(false); 

Sin la operación pack() de la ventana no se maximizado Esto fue probado usando Linux y Java 6.

Cuestiones relacionadas