JPanel里面的JPanel

时间:2014-04-29 18:22:58

标签: java swing jpanel layout-manager

我遇到了问题,因为我想将一个小JPanel放在另一个JPanel内,但我无法显示小JPanel

我错过了什么?

    this.setLayout(new BorderLayout(5,5));

    this.cardsPanel= new JPanel();
    this.cardsPanel.setBackground(Color.DARK_GRAY);
    this.cardsPanel.setLayout(new FlowLayout (FlowLayout.CENTER,3,10));

    this.cardsPanel2= new JPanel();
    this.cardsPanel2.setBackground(Color.DARK_GRAY);
    this.cardsPanel2.setLayout(new FlowLayout (FlowLayout.CENTER,3,10));

    this.tablePanel=new JPanel();
    this.tablePanel.setBackground(Color.PINK);
    this.tablePanel.setLayout(new FlowLayout (FlowLayout.CENTER,5,5));

    this.tablePanel1=new JPanel();
    this.tablePanel1.setBackground(Color.ORANGE);
    this.tablePanel1.setPreferredSize(new Dimension(100,100));
   // this.tablePanel1.setLayout(null);
    this.tablePanel1.add(tablePanel);

    this.add(cardsPanel, BorderLayout.SOUTH);
    this.add(cardsPanel2, BorderLayout.NORTH);
    this.add(tablePanel,BorderLayout.CENTER);

2 个答案:

答案 0 :(得分:1)

使用该代码:

  • cardsPanel1cardsPanel2(深灰色)都没有任何组件(或因此)任何大小。在0x0像素大小时,它们是不可见的,即使添加到另一个容器中(除非布局延伸它们)。
  • tablePanel(粉红色)应该是可见的只要this 添加到的任何布局中都分配了足够的空间。
  • tablePanel1(橙色)不应该是可见的,因为它永远不会添加到任何内容中。

但如上所述,为了更好地提供帮助,请发布MCVE(最小完整且可验证的示例)。

答案 1 :(得分:0)

添加新内容后,

this.validate();您的根面板。