java开发中我设置了一个JPanel里面装了图片作为背景 但是为什么没有显示出来背景图片

此段代码中什么地方出错了?为什么我的ip,h还有rs,drgl这三个地方的背景图片
无法显示或者切换?

    p4=new JPanel(new BorderLayout());
    p2=new JPanel(new CardLayout());
    //处理p2,p3,p4

    p2_lab1=new JLabel(new ImageIcon("image/21.jpg"));
    p2_lab2=new JLabel(new ImageIcon("image/22.jpg"));
    //把以上俩加入到P2中
    p2.add(p2_lab1,"0");
    p2.add(p2_lab2,"1");
    this.cardp3=new CardLayout();
    p3=new JPanel(this.cardp3);
    //先给P3加入一个主界面的卡片
    Image zhu_image=null;
    try {
        zhu_image = ImageIO.read(new File("image/11.jpg"));

    } catch (Exception e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    ImagePanel ip=new ImagePanel(zhu_image);

    p3.add(ip,"0");
    //对P3添加几个JLabel
    JLabel rs=new JLabel(new ImageIcon("image/renshi.jpg"));
    p3.add(rs,"1");
    JLabel drgl=new JLabel(new ImageIcon("image/dengru.jpg"));
    p3.add(drgl,"2");

    //把p2 p3装入P4中
    p4.add(p2,"West");
    p4.add(p3,"Center");

    //做一个拆分窗口分别存放P1 P4
    jsp1=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,true,p1,p4);
    //指定左边的面板占多大像素
    jsp1.setDividerLocation(120);
    //把边界线设为没有
    jsp1.setDividerSize(0);

不知道现在还能不能帮到你,我今天也遇到了这个情况,
但是,我给JPanel设置了背景颜色后(setBackground),图片就显示了。