2015-03-24 25 views
0

我對編程java GUI相對比較陌生,我想使用網格佈局並在該網格佈局中放置一個容器。我真的不知道如何做到這一點,但這裏是我的嘗試,並沒有奏效:把容器放在網格佈局

Container pane = getContentPane(); 
    pane.setLayout(new GridLayout(3, 1)); 
    Container inp = getContentPane(); 
    inp.setLayout(new GridLayout(2, 4)); 
    Container out = getContentPane(); 
    out.setLayout(new GridLayout(1, 1)); 
    Container bottom = getContentPane(); 
    bottom.setLayout(new GridLayout(1, 2)); 

    pane.add(inp); 
    pane.add(out); 
    pane.add(bottom); 

    inp.add(cn1); 
    inp.add(cnum1); 
    inp.add(cn2); 
    inp.add(cnum2); 
    inp.add(add); 
    inp.add(sub); 
    inp.add(mul); 
    inp.add(div); 

    out.add(ans); 

    bottom.add(clear); 
    bottom.add(exit); 

    pane.add(inp); 
    pane.add(out); 
    pane.add(bottom); 

我知道這是錯誤的,但我希望有人能幫助我。謝謝!

回答

0

所有面板都是一樣的東西,它們引用contentPane。一個組件只能駐留在一個容器中,因此每次將任何年輕面板添加到另一個容器時,它們都將首先從父容器中移除。

話雖如此,你應該有一個異常,指出一個容器不能被添加到自己。

相反,你需要做更多的東西一樣......

Container pane = getContentPane(); 
pane.setLayout(new GridLayout(3, 1)); 
Container inp = new JPanel(new GridLayout(2, 4)); 
Container out = new JPanel(new GridLayout(1, 1)); 
Container bottom = new JPanel(new GridLayout(1, 2)); 
+0

感謝您的幫助! – andstu 2015-03-24 22:17:27

+0

很高興它可以幫助 – MadProgrammer 2015-03-24 23:08:51