2012-10-27 206 views
7

我在netbeans中創建了一個JFrame。但是當我運行該程序時,Jframe的大小太小了。 這是我的代碼。JFrame大小太小

import javax.swing.JFrame;  

public class Window { 

    private static void demo() 
    { 
     JFrame frame =new JFrame(); 
     frame.setVisible(true); 
    } 
    public static void main(String[] args) { 
     javax.swing.SwingUtilities.invokeLater(new Runnable(){ 
     public void run() 
     { 
      demo(); 
     } 
     }); 
    } 
} 

And the output window looks like this.

+1

[搖擺JComponents](http://docs.oracle.com/javase/tutorial/uiswing/components)默認只接受PREFERREDSIZE, – mKorbel

+0

*「幀大小太小「*把組件放在裏面,然後調用'pack()'。該框架將成爲它需要的最小尺寸,以便顯示其中的組件。 –

回答

8

您可以使用frame.setSize(width, height)以設置其大小或frame.setBounds(x, y, width, height)的同時設置位置和大小。

將某些組件添加到其內容窗格後,更好的選擇是調用frame.pack()

+0

是的!有效 :)。謝謝。 – Sam

2

試試這個方法...

使用setSize(width, height)方法的JFrame

public class Myframe extends JFrame{ 

    public Myframe(){  
     this.setSize(300,300);  
    } 

public static void main(String[] args){ 

    EventQueue.invokeLater(new Runnable(){ 

      public void run(){   
      Myframe f = new Myframe("Frame"); 
      f.setVisible(true);  
      } 
     }); 
    }  
} 
+1

什麼是'f.visible()'? –

+0

f是擴展了JFrame的類Myframe的實例 –

+1

不不可見?這是哪種方法? –

0

如果你想最大化你可以嘗試

this.setVisible(false); 
    this.setExtendedState(MAXIMIZED_BOTH); 
    this.setVisible(true); 
    this.setResizable(false); 

否則,對於一些特定的大小使用

this.setSize(width,height); 
0

你只需要添加一行行,以便你可以給你該行是

frame.setSize(300,300); 

這裏是全碼:

import javax.swing.JFrame;  

public class Window { 

private static void demo() 
{ 
    JFrame frame =new JFrame(); 
    frame.setSize(300,300); 
    frame.setVisible(true); 
} 
public static void main(String[] args) { 
    javax.swing.SwingUtilities.invokeLater(new Runnable(){ 
    public void run() 
    { 
     demo(); 
    } 
    }); 
} 
}