2010-03-15 9 views
17

Estoy tratando de crear un JFrame con un área de contenido utilizable de exactamente 500x500. Si hago esto ...Oscilación: establecer el tamaño del área de contenido JFrame

public MyFrame() { 
    super("Hello, world!"); 
    setSize(500,500); 
} 

... me sale una ventana cuyo tamaño total es de 500x500, incluyendo la barra de título, etc., en el que realmente necesito una ventana cuyo tamaño es algo así como dar cuenta de 504x520 el borde de la ventana y la barra de título. ¿Cómo puedo conseguir esto?

Respuesta

23

puede intentar par de cosas: 1 - un truco:

public MyFrame(){ 
JFrame temp = new JFrame; 
temp.pack(); 
Insets insets = temp.getInsets(); 
temp = null; 
this.setSize(new Dimension(insets.left + insets.right + 500, 
      insets.top + insets.bottom + 500)); 
this.setVisible(true); 
this.setResizable(false); 
} 

2- o Añadir un JPanel al panel de contenido del marco y Sólo hay que establecer el/mínimo preferido del JPanel a 500X500, el paquete de llamada()

  • 2- es más portátil
7

No importa, lo he descubierto:

public MyFrame() { 
    super("Hello, world!"); 

    myJPanel.setPreferredSize(new Dimension(500,500)); 
    add(myJPanel); 
    pack(); 
} 
+2

En Java 5, en realidad es posible hacerlo sin otro panel. Consulte http://stackoverflow.com/questions/2796775/setting-the-size-of-a-contentpane-inside-of-a-jframe. –

24

simplemente usar:

public MyFrame() { 
    this.getContentPane().setPreferredSize(new Dimension(500, 500)); 
    this.pack(); 
} 

No hay necesidad de un JPanel a estar ahí, si sólo desea configurar el tamaño del marco.

+0

Solución más simple. –

Cuestiones relacionadas