2013-10-24 39 views
1

我正在製作一個Sudoku程序,並且想要爲我的JFrame更改My GridLayout的間距。目前,有兩個JPanels,一個在頂部,一個在底部,間距只有一半。不過,我希望頂級JPanel在JFrame上有更多的空間。我的代碼是這樣的:更改Gridlayout Java的間距

import java.awt.GridLayout; 

    import javax.swing.BoxLayout; 
    import javax.swing.JFrame; 


    public class GuiFrame1 extends JFrame { 
    private static final long serialVersionUID = 1L; 
    private static JFrame frame; 
    static GridLayout gLayout2 = new GridLayout(2,1); 
    private GuiPanel2 panel; 
    private GuiPanel1 panel2; 
    public GuiFrame1(){ 

    super("Sudoku"); 
    setSize(700, 700); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setLayout(gLayout2); 
    panel = new GuiPanel2(); 
    panel2 = new GuiPanel1(); 
    setVisible(true); 
    add(panel); 
    add(panel2); 


    } 
    public static void main(String[] args) { 
     new GuiFrame1(); 
    } 

    } 

如果您需要JPanel類,可以安排。

+0

'GridLayout'爲所有組件提供相同的空間。你需要使用另一個佈局管理器(比如'BoxLayout')。查看[佈局經理的視覺指南](http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html),選擇最適合您需求的佈局管理器。 – kiheru

回答

1

IIRC你不能這樣做。您應該嘗試通過將其放置在其他佈局類型中來「模擬」這種情況 - 通常(總是)您可以通過將佈局類型堆疊到另一個佈局類型中來實現所需的任何佈局。但是我相當肯定,網格佈局本身必須具有相同的尺寸。

另外,GridBagLayout可能對你有用,但它可以沒有它。

當我面對同樣的問題時,我記得一起使用邊界和網格佈局組合的方法「黑客入侵」......其他佈局也可能已被使用。

+0

是的,GridLayout的網格大小基本一致。如果您想要不同大小的單元格,請使用GridBagLayout。 – Radiodef

+0

GridBagLayout的任何提示? – MrPerson