我遇到了问题,因为我想将一个小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);
答案 0 :(得分:1)
使用该代码:
cardsPanel1
和cardsPanel2
(深灰色)都没有任何组件(或因此)任何大小。在0x0像素大小时,它们是不可见的,即使添加到另一个容器中(除非布局延伸它们)。tablePanel
(粉红色)应该是可见的只要this
在 添加到的任何布局中都分配了足够的空间。tablePanel1
(橙色)不应该是可见的,因为它永远不会添加到任何内容中。但如上所述,为了更好地提供帮助,请发布MCVE(最小完整且可验证的示例)。
答案 1 :(得分:0)
this.validate();
您的根面板。