2010-03-15 27 views
17

JFrame'i tam olarak 500x500 kullanılabilir bir içerik alanıyla yapmaya çalışıyorum. Eğer bunu yaparsam ... Salınım: JFrame içerik alanı boyutunu ayarlayın

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

... Kimin Tam boy Gerçekten boyutu hesaba 504x520 gibi bir şey bir pencere ihtiyacım vb başlık çubuğunda, dahil 500x500, bir pencere pencere kenarlığı ve başlık çubuğu. Bunu nasıl başarabilirim?

cevap

23

şeylerin birkaç deneyebilirsiniz: 1 - Bir kesmek:

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- ya çerçevenin içeriği bölmesinde ve bir Jpanel ekle Hemen tercih/minimum boyut Jpanel ait ayarlı 500x500, çağrı paketi()

  • 2- daha taşınabilir
7

Ben bunu anladım, Aldırma:

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

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

Java 5'te, bunu başka bir panel olmadan yapmak mümkündür. Http://stackoverflow.com/questions/2796775/setting-the-size-of-a-contentpane-inside-of-a-jframe adresine bakın. –

24

Basitçe kullanın: Sadece çerçevenin boyutunu ayarlamak istiyorsanız JPanel, orada olmak için hiç gerek yok

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

.

+0

En basit çözüm. –

İlgili konular