java矩形为什么碰撞检测出不来?

package plane;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import java.awt.Rectangle;
import util.Constant;
import util.GameUtil;
import util.MyFrame;

public class PlaneFrame extends MyFrame {
Image bg=GameUtil.getImage("images/bg.jpg");
Image boom=GameUtil.getImage("images/boom.jpg");
Plane p=new Plane("images/2.png",50,50);
ArrayList bulletList= new ArrayList();
public void paint(Graphics g){
g.drawImage(bg, 0, 0, null);
p.draw(g);
for(int i=0;i<bulletList.size();i++){
Bullet b=(Bullet)bulletList.get(i);
b.draw(g);
//检测和飞机的碰撞
boolean peng=b.getRect().intersects(p.getRect());
if(peng){
System.out.println("============================");
}
}

}package plane;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;

import util.GameUtil;

public class Plane extends GameObject {
private boolean left,right,up,down;
private boolean live=true;

public boolean isLive() {
return live;
}
public void setLive(boolean live) {
this.live = live;
}
public Rectangle getRect(){

    return new Rectangle((int)x,(int)y,width,height);
}
public Plane() {
    super();
}

public void draw(Graphics g){
    if(live){
        g.drawImage(img, (int)x, (int)y, null);
    move();
    }
}
public void move(){
if(left){
    x-=speed;
}
if(right){
    x+=speed;
}
if(up){
    y-=speed;
}
if(down){
    y+=speed;
}
    }

public void addDirection(KeyEvent e){
    switch(e.getKeyCode()){
    case KeyEvent.VK_LEFT:
        left=true;
    break;
    case KeyEvent.VK_RIGHT:
        right=true;
    break;
    case KeyEvent.VK_UP:
        up=true;
    break;
    case KeyEvent.VK_DOWN:
        down=true;
    break;
        default:
        break;
    }
}
public void reDirection(KeyEvent e){
    switch(e.getKeyCode()){
    case KeyEvent.VK_LEFT:
    left=false;
    break;
    case KeyEvent.VK_RIGHT:
        right=false;
        break;
    case KeyEvent.VK_UP:
        up=false;
        break;
    case KeyEvent.VK_DOWN:
        down=false;
        break;
        default:
            break;
    }
}

public Plane(String imgpath, double x, double y) {
    super();

    this.img = GameUtil.getImage(imgpath);
    this.width=img.getWidth(null);
    this.height=img.getHeight(null);
    this.x = x;
    this.y = y;
}

}
public class Bullet extends GameObject{
double degree;
int width=7;
int height=7;
public Rectangle getRect(){

    return new Rectangle((int)x,(int)y,7,7);
}

http://www.2cto.com/kf/201411/352050.html

boolean peng=b.getRect().intersects(p.getRect());
if(peng){
System.out.println("============================");
}
楼主 为什么我加上这段代码就报错 不加就没事