我有两个面板定义如下:
public class JPanel_with_BG extends JPanel
{
private Image bg_image;
public JPanel_with_BG(Image bg_image)
{
this.bg_image = bg_image;
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if (bg_image != null)
{
g.drawImage(bg_image, 0, 0, this);
}
}
}
和
public class MPanel extends JPanel
{
public void paint(Graphics g)
{
super.paint(g);
// draw something...
}
}
然后,我想在bg_pnl上添加第二个面板。顶部面板较小,如bg_pnl.size = pnl + 2 * padding。
MPanel pnl = new MPanel();
JPanel bg_pnl = new JPanel_with_BG(image);
int pad = 50;
bg_pnl.setBorder(new EmptyBorder(pad, pad, pad, pad));
bg_pnl.add(pnl);
问题是我在顶部面板上绘制的内容不可见。我能看到的只是背景图片。有任何想法吗?感谢。
答案 0 :(得分:1)
你的代码似乎没问题。我在我的最后尝试了这个,我可以在我的UI上看到一个显示cmnel的小区域。您需要验证显示此组件的面板的大小。
由于窗口的尺寸,可能会出现该区域不可见的情况。面板的默认布局也是流布局,它根据它们的大小排列添加的组件,如果它们非常小,则可能不可见