代码如下:
import javax.swing.*;
import java.awt.*;
import java.awt.image.*;public class Pic extends JFrame
{
private JButton
    b1 = new JButton("button1"),
    b2 = new JButton("button2"),
    b3 = new JButton("button3"),
   b4 = new JButton("button4"),
   b6 = new JButton("button6"),
    b5 = new JButton("button5");
private Panel panel1 = new Panel();
private JPanel panel2 = new JPanel();

public Pic()
{
this.setTitle("图像处理");
this.setSize(900, 700);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

panel1.img = Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("meishi.jpg"));
panel2.add(b1);
panel2.add(b2);
panel2.add(b3);
panel2.add(b4);
panel2.add(b5);
panel2.add(b6);
panel1.repaint();
panel1.setBackground(Color.darkGray);
panel2.setBackground(Color.CYAN);
this.add(panel1,BorderLayout.CENTER);
this.add(panel2,BorderLayout.SOUTH);

}

public static void main(String[] args) 
{
Pic pic = new Pic();
}
}class Panel extends JPanel
{
Image img = null;
public void paint(Graphics g)
{
super.paint(g);
g.drawImage(img,0,0,300,200,this);
}
}

解决方案 »

  1.   

    你的图片"meishi.jpg"在什么位置放着,如果是用ECLIPSE做的话,需要放到SRC根目录下的
      

  2.   

    如果是放到工程根目录下的的话,可以改成 panel1.img = Toolkit.getDefaultToolkit().getImage("meishi.jpg");
    或者panel1.img =   ImageIO.read(new File("meishi.jpg"));(这个会抛出异常)
      

  3.   


    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.Toolkit;import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;public class Pic extends JFrame {
    private JButton b1 = new JButton("button1"), b2 = new JButton("button2"),
    b3 = new JButton("button3"), b4 = new JButton("button4"),
    b6 = new JButton("button6"), b5 = new JButton("button5");
    private Panel panel1 = new Panel();
    private JPanel panel2 = new JPanel(); public Pic() {
    this.setTitle("图像处理");
    this.setSize(900, 700);
    this.setVisible(true);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); panel1.img = Toolkit.getDefaultToolkit().getImage(
    Panel.class.getResource("meishi.jpg"));

    panel2.add(b1);
    panel2.add(b2);
    panel2.add(b3);
    panel2.add(b4);
    panel2.add(b5);
    panel2.add(b6);
    panel1.setBackground(Color.darkGray);
    panel2.setBackground(Color.CYAN);
    this.setLayout(new BorderLayout());
    this.add(panel1, BorderLayout.CENTER);
    this.add(panel2, BorderLayout.SOUTH); } public static void main(String[] args) {
    Pic pic = new Pic();
    pic.panel1.repaint();
    }
    }class Panel extends JPanel {
    Image img = null; @Override
    public void paint(Graphics g) {
    super.paint(g);
    g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
    }
    }
    图片放在此类生成的class文件夹下
      

  4.   

    swing类请重写 paintComponent。 
    不要使用和java.awt.Panel 同名的 Panel类名。
      

  5.   

    我用的是eclipse,不过图片我放在根目录下,貌似没用
      

  6.   

    重写 paintComponent。  
    不要使用和java.awt.Panel 同名的 Panel类名
      

  7.   

    你在根目录下要用panel1.img = Toolkit.getDefaultToolkit().getImage("meishi.jpg");另外因为线程原因,main方法写成
    EventQueue.invokeLater(new Runnable(){
    public void run() {
    Pic pic = new Pic();
    }

    });
    这样