class MainWindow extends JFrame{
    protected JPanel panel1;
    MainWindow(String s){
        super(s);
        this.setSize(800,600);
        this.setLocation(200, 100);
        this.getContentPane().setBackground(Color.BLACK);
        Image image1=this.getToolkit().createImage("MainWindowImage.jpg");
        this.setVisible(true);
        this.getContentPane().getGraphics().drawImage(image1, 200, 100, this);
        
    }
}
初学,还请不吝赐教,多谢多谢!

解决方案 »

  1.   

    你调用setVisible方法过早,你试下把这个方法放在构造函数的最后
      

  2.   

    随便改的
    class MainWindow extends JFrame{
        MainWindow(String s){
            super(s);
            this.setSize(800,600);
            this.setLocation(200, 100);
            Image image1=this.getToolkit().createImage("MainWindowImage.jpg");
            this.setContentPane(new XPanel(image1));
            this.setVisible(true);   
        }    class XPanel{
            private Image image;
            public XPanel(Image image){
                this.image = image;
                setBackground(Color.BLACK);
            }
            @Override public void paintComponent(Graphics g){
                g.drawImage(image, 200, 100, this);
            }
        }
    }
      

  3.   

    import java.awt.*;
    import javax.swing.*;public class MainWindow extends JFrame {
        public MainWindow(String s){
            super(s);
            this.setSize(800,600);
            this.setLocation(200, 100);
            Image image1=this.getToolkit().createImage("MainWindowImage.jpg");
            this.setContentPane(new XPanel(image1));
            this.setVisible(true);
        }
        public static void main(final String[] args) {
            java.awt.EventQueue.invokeLater(new Runnable(){
                    @Override public void run(){
                        new MainWindow("Example");
                    }
                });
        }    class XPanel extends JPanel {
            private Image image;
            public XPanel(Image image){
                this.image = image;
                setOpaque(false);
            }        @Override public void paintComponent(Graphics g){
                g.setColor(Color.BLACK);
                g.fillRect(0,0,getWidth(),getHeight());
                g.drawImage(image, 200, 100, this);
            }
        }
    }
      

  4.   

    还是不行,图片无法显示,只有黑色背景……
    是不是我图片的位置有问题?“MainWindowImage.jpg”是和MainWindow.java放在同一个文件夹内吗?
      

  5.   

    当前目录 System.getProperty("user.dir")在哪里运行 java MainWindow 就放到哪里。