我要设置JList控件的背景为一张JPG图片,但又要显示控件上的选项。
我的程序如下:JList leftList = new JList(){
protected void paintComponent(Graphics g)
{
g.drawImage(new ImageIcon("image/listbg.jpg").getImage(), 0, 0, getWidth(), getHeight(), null);
super.paintComponent(g);
super.paintComponents(g);

}
};运行后通点单击控件返回结果的方法证实控件上确实有内容,但是只显示了背景图片而不显示控件内的选项,请问应该怎么解决

解决方案 »

  1.   

    JList leftList = new JList(){
                protected void paintComponent(Graphics g)
                {
                    super.paintComponent(g);
                    g.drawImage(new ImageIcon("image/listbg.jpg").getImage(), 0, 0, getWidth(), getHeight(), null);
                    super.paintComponent(g);
                    super.paintComponents(g);
                    
                }
            };
      

  2.   

    给你的jlist    setOpaque(false)就行了
      

  3.   

    写个全的吧
    class MyList extends JList { public MyList(String[] data) {
    super(data);
    setOpaque(false);//自身透明,使得可以显示一条条item
    ((DefaultListCellRenderer)getCellRenderer()).setOpaque(false);//每个item透明,使得item背景不是默认的白色
    }

    @Override
    public void paintComponent(Graphics g) {
    g.drawImage(new ImageIcon("D:/picture/1.jpg").getImage(), 0, 0,
    getWidth(), getHeight(), null);
    super.paintComponent(g);

    }