解决方案 »

  1.   

    ImageJQ canvas=new ImageJQ();  //将图片域加入JFrame中
            canvas.setSize(345,50);
            add(canvas);
      

  2.   

    ImageJQ canvas=new ImageJQ();  //将图片域加入JFrame中
            canvas.setSize(345,50);
            add(canvas);
      

  3.   

    比较简单的就是给一个JLabel加上图片,然后把该JLabel加到JFrame上JLabel label = new JLabel();
    label.setIcon(new ImageIcon("123.jpg");
    frame.add(label);
      

  4.   

    楼上的方法也行,但是JLabel不能作为其他组件的容器,可以换成JPanel,在JPanel的paintComponent中画出图片,再把JPanel加入到JFrame中就可以了.在JPanel中加入其他的组件,并不影响已经画好的图形,图形是作为背景图的.
      

  5.   

    最好是重载一个Jpanel类,里面装入一副图片,这副图片成为背景图片.
    代码如下:
    import javax.swing.*;
    import javax.swing.border.TitledBorder;import java.awt.*;
    import java.net.*;
    public class ImagePanel extends JPanel{
    /**
     * 
     */
    private static final long serialVersionUID = 6521980729205616176L;
    private Image image;

    public ImagePanel()
    {

    }
    public ImagePanel(Image image)
    {
    this.image=image;
    }

    // add by Tang Gaungchao
    public ImagePanel(JPanel jp,String s)
    {
    this.setSize(jp.getSize());
    jp.setLayout(null);
    this.setBorder(BorderFactory.createTitledBorder(null, "", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, new Font("Dialog", Font.BOLD, 12), new Color(51, 51, 51)));
    if(s.substring(0,4).compareTo(new String("http://").substring(0,4))==0)
    {
    try{
    URL imageurl=new URL(s);
    // image=Toolkit.getDefaultToolkit().(imageurl);
    image=Toolkit.getDefaultToolkit().getImage(imageurl);
    MediaTracker tracker=new MediaTracker(this);
    tracker.addImage(image,0);
    //this.repaint();
    }
    catch(MalformedURLException ex)
    {
    ex.printStackTrace();
    }
    }
    else
    {
    image=Toolkit.getDefaultToolkit().getImage(s);
    MediaTracker tracker=new MediaTracker(this);
    tracker.addImage(image,0);
    }

    }
    // add end
    public ImagePanel(String s)
    {
    if(s.substring(0,4).compareTo(new String("http://").substring(0,4))==0)
    {
    try{
    URL imageurl=new URL(s);
    // image=Toolkit.getDefaultToolkit().(imageurl);
    image=Toolkit.getDefaultToolkit().getImage(imageurl);
    MediaTracker tracker=new MediaTracker(this);
    tracker.addImage(image,0);
    //this.repaint();
    }
    catch(MalformedURLException ex)
    {
    ex.printStackTrace();
    }
    }
    else
    {
    image=Toolkit.getDefaultToolkit().getImage(s);
    MediaTracker tracker=new MediaTracker(this);
    tracker.addImage(image,0);
    }
    }
    public void paintComponent(Graphics g)
    {
    super.paintComponent(g);
    g.drawImage(image,0,0,this.getWidth(),this.getHeight(),this);
    }
    }
    这段代码,是我以前写的,你看看,其功能是传入图片地址,如果地址是以HTTP开头,则做为网络图片载入,其他以本地图片载入.
      

  6.   

    最简单的就是给一个JLabel加上图片。
      

  7.   

    Graphics gBuffer;ImageIcon image = new ImageIcon(url);
    //x,y is position
    gBuffer.drawImage(image.getImage(),x,y,this);
      

  8.   

    可以直接给 JFrame加上图片,,JFrame有个setIconImage(Image image)  方法。这个可以用
      

  9.   

    要想加上背景图片的话,建议你用层面板JLayeredPane,将其最下层放入一张图片即可。该类具体的可以在jdk api文档中查看详细的用法。
      

  10.   

    JFrame是由这么几部分组成:最底下一层JRootPane,上面是glassPane(一个JPanel)和layeredPane(一个JLayeredPane),而layeredPane又由contentPane(一个JPanel)和menuBar构成。
    我们一般在JFrame上添加组件往往都是加在contentPane上面:
    frame.getContentPane().add(btn);
    要在JFrame上添加背景图片,常见做法是加在layeredPane上面,并将contentPane设置成透明的即可。
    // 将图片添加到layeredPane
    ImageIcon img = new ImageIcon("steve.jpg");
    JLabel imgLabel = new JLabel(img);
    frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));
    imgLabel.setBounds(0,0,img.getIconWidth(), img.getIconHeight());
    ...
    // 将contentPane设置成透明的
    ((JPanel)getContentPane()).setOpaque(false); 
    绝对可行,即使使用GIF文件也行,这是我百思不得其解的地方,因为我试过重写了JPanel的paint()方法,加了gif背景。结果在上面添加组件的时候发现因为使用gif文件的关系,Jpanel会不断重绘,增加的组件无法正常显示。(在上面加面板也无济于事)但是为什么JFrame就不会呢?