import java.awt.*;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;import javax.swing.*;
public class photo extends JFrame{

JFrame frame;
Container container;
JPanel panel1;
JPanel panel2;
JButton button;
File file = null;
URL url = null;
ImageIcon imageicon;
Image image = null;  //声明照片变量
//Graphics g = panel1.getGraphics();
public photo(){
frame = new JFrame();
container = frame.getContentPane();
frame.show();  //可使 他内部的组件全不可见
//container.getGraphics();
if(container.getGraphics() instanceof  Graphics){ //必须先让要得到图形上下文,即得到Graphis的对象可见
System.out.println("没得到了画笔:");
}
panel1 = new JPanel();
panel2 = new JPanel();
button = new JButton("按钮");
file = new File("E:\\Media\\照片\\a.jpg");
try {
url = file.toURL();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
imageicon = new ImageIcon(url);
panel1.add(button);
panel2.setBackground(Color.red);
//p(container.getGraphics());
imageicon.paintIcon(container, container.getGraphics(), 0, 0);
frame.show();
//repaint(); //container.getGraphics()得不到画笔啊
}
public void p(Graphics g){
imageicon.paintIcon(container, g, 0, 0);
}
/*public void paint(Graphics g){
imageicon.paintIcon(container, g, 0, 0);
}*/
public static void main(String[] args){
// TODO Auto-generated method stub
photo fr = new photo();
}}

解决方案 »

  1.   

    下次发代码能用代码标签format一下不,没法看啊!
      

  2.   

    import java.awt.*;
     import java.io.File;
     import java.net.MalformedURLException;
     import java.net.URL;
     
    import javax.swing.*;
     public class photo extends JFrame{ JFrame frame;
     Container container;
     JPanel panel1;
     JPanel panel2;
     JButton button;
     File file = null;
     URL url = null;
     ImageIcon imageicon;
     Image image = null;  //声明照片变量
    //Graphics g = panel1.getGraphics();
     public photo(){
     frame = new JFrame();
     container = frame.getContentPane();
     frame.show();  //可使 他内部的组件全不可见
    //container.getGraphics();
     if(container.getGraphics() instanceof  Graphics){ //必须先让要得到图形上下文,即得到Graphis的对象可见
    System.out.println("没得到了画笔:");
     }
    panel1 = new JPanel();
     panel2 = new JPanel();
     button = new JButton("按钮");
    file = new File("E:\\Media\\照片\\a.jpg");
     try {
     url = file.toURL();
     } catch (MalformedURLException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
     }
     imageicon = new ImageIcon(url);
     panel1.add(button);
     panel2.setBackground(Color.red);
     //p(container.getGraphics());
     imageicon.paintIcon(container, container.getGraphics(), 0, 0);
     frame.show();
     //repaint(); //container.getGraphics()得不到画笔啊
    }
    public void p(Graphics g){
     imageicon.paintIcon(container, g, 0, 0);
     }
     /*public void paint(Graphics g){
     imageicon.paintIcon(container, g, 0, 0);
     }*/
     public static void main(String[] args){
     // TODO Auto-generated method stub
     photo fr = new photo();
     }
     
    }