我想創建一個包含一些JLabel的JPanel子類。我開始寫我的代碼,但我立即發現一個大問題。添加到JPanel子類中的組件是不可見的(或者它們不會被添加到JPanel中)。這是JPanel的子類的代碼:)就可以了在JPanel子類中添加組件
public class ClientDetails extends JPanel
{
private JLabel nameAndSurname = new JLabel ("Name & Surname");
private JLabel company = new JLabel ("Company");
private JPanel topPanel = new JPanel();
public ClientDetails()
{
this.setBackground(Color.white);
this.setLayout(new BorderLayout());
topPanel.setLayout(new BoxLayout(topPanel, BoxLayout.Y_AXIS));
topPanel.add(nameAndSurname);
topPanel.add(company);
this.add(topPanel,BorderLayout.PAGE_START);
}
}
1)不要擴展組件,只要保留對它們的引用即可。 2)爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 –
對不起,爲什麼不擴展呢?在我的情況下,最好有一個現成的組件來保存我的標籤,使代碼不復雜 – Luca
請參閱[繼承構成](http://en.wikipedia.org/wiki/Composition_over_inheritance)。 –