Minimizar o maximizar una ventana

2528 vistas

Des de J2SE 1.4
Para maximizar o minimizar una ventanapodemos usar el método setExtendedState de la clase Frame.

Veamos un ejemplo que maximiza la ventana:



java
  1. JFrame frame = ... ;
  2. frame.setExtendedState(JFrame.MAXIMIZED_BOTH);



Las posibles opciones son:

  • NORMAL: sin estado especial
  • ICONIFIED: minimizar la ventana
  • MAXIMIZED_HORIZ: la ventana ocupa el máximo lugar horizontalmente
  • MAXIMIZED_VERT: la ventana ocupa el máximo lugar verticalmente
  • MAXIMIZED_BOTH: la ventana ocupa el máximo lugar hacia todos lados

Antes de J2SE 1.4
Podemos usar el método setState de la clase Frame. Su uso es el mismo que para setExtendedState, con diferencia que no hay parámetro que permita maximizar. Si queremos tener la ventana que parezca maximizada, es decir, que tome todo el espacio de la pantalla dejando visible la barra de tareas, podemos realizar lo siguiente:



java
  1. public void maximizar(Frame frame){
  2.       Toolkit kit =  Toolkit.getDefaultToolkit();
  3.  
  4.       // recuperación del tamaño de la pantalla y rebordes
  5.       Insets insets = kit.getScreenInsets(frame.getGraphicsConfiguration());
  6.       Dimension screen = kit.getScreenSize();
  7.  
  8.       // cálculo de las longitudes necesarias y de la posición
  9.       int w = (int)(screen.getWidth()-insets.left-insets.right);
  10.       int h = (int)(screen.getHeight()-insets.top-insets.bottom);
  11.       int x = (int)(insets.left);
  12.       int y = (int)(insets.top);
  13.       Dimension dimension = new Dimension(w,h);
  14.  
  15.       // posicionamos y redimensionamos
  16.       frame.setSize(dimension);
  17.       frame.setLocation(x,y);
  18. }