如何编码高效的背景图像

时间:2015-07-30 21:29:38

标签: java swing

请问我正在使用java编写2D游戏,但是当我拖动JFrame时,我的背景图像没有加载它加载的JFrame,因为它可以调整大小

 import javax.swing.*;
 import java.awt.*;
 public class imageLearn1 extends JFrame{
  private Image im;
  private JPanel p1;

  public imageLearn1(){
   this.setSize(300,400);
   this.setVisible(true);
   this.setLocationRelativeTo(null);
   this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   p1=new paintIt();
   this.add(p1);
   }
   class paintIt extends JPanel{
         public paintIt(){
       ImageIcon ima=new ImageIcon("ballfall3.jpg");
       im=ima.getImage();

      im=im.getScaledInstance(200,-1,Image.SCALE_DEFAULT);
      }

     public void paintComponent(Graphics g){
        super.paintComponent(g);
        if(im!=null){
          g.drawImage(im,0,0,300,400,this);
        }
      }
   }


     public static void main(String[]args){
           new imageLearn1();

     }
 }

1 个答案:

答案 0 :(得分:2)

在使框架可见之前,必须将组件添加到框架中。代码的顺序应为:

p1=new paintIt();
this.add(p1);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(300,400);
this.setLocationRelativeTo(null);
this.setVisible(true);

此外,类名应以大写字母开头。你的类名应该是“PaintIt”。