2011-01-20 112 views
8

我有一個JPanel內的另一個問題。我不知道爲什麼,但結果是一個簡單的方塊,但尺寸不正確。這是爲什麼?另一個JPanel內

import java.awt.Color; 
import java.awt.Container; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class jj extends JFrame { 

    private JPanel painel3; 
    private JPanel painel5; 
    private Container container; 

    public jj() { 

     container = getContentPane(); 
     container.setLayout(null); 

     painel5 = new JPanel(); 
     painel5.setBackground(Color.red); 
     painel5.setBounds(120, 110, 100, 120); 
     painel3 = new JPanel(); 
     painel3.setBackground(Color.white); 
     painel3.add(painel5); 
     painel3.setBounds(50, 50, 290, 220); 

     container.add(painel3); 

     // frame 
     setSize(1000, 900); 
     setLocation(200, 50); 
     setResizable(false); 
     setVisible(true); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    } 

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

回答

5

您需要設置·Panel3中的佈局也爲空,否則將使用默認FlowLayout

panel3.setLayout(null);

+1

添加`painel3.setlayout(空);當我測試他的代碼`工作。 – Puddingfox 2011-01-20 16:40:36

2

更妙的是,雖然是爲了避免使用空佈局和的setBounds /的setSize而是讓佈局管理員幫助您佈置GUI。你可以在這裏對他們讀了起來:Laying out components in a container

3

幾個額外的建議。學習使用LayoutManagers。他們可能有一個輕微的學習曲線,但它肯定會是值得的。尼斯教程:http://download.oracle.com/javase/tutorial/uiswing/layout/using.html

而且根據Java標準,類名應該以大寫字母開頭。這樣做會幫助其他人更好地閱讀你的代碼。

+1

+1使用LayoutManagers是一個很好的建議。 – Jonas 2011-01-20 17:08:32

0

加入painel5面板之前設置painel3爲空的佈局。

painel3.setLayout(空); painel3.add(painel5);

我建議使用佈局管理。

相關問題