标题:老是空指针异常,改了好些遍,都没成功,大家帮我看一下吧
取消只看楼主
jjyy9822
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-6-24
 问题点数:0 回复次数:1 
老是空指针异常,改了好些遍,都没成功,大家帮我看一下吧


import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Demo extends JFrame {
    MyJPanel myPanel;
   
    public static void main(String[] args) {
        Demo demo = new Demo();
    }
   
    public Demo(){
        myPanel = new MyJPanel();
        //System.out.println(myPanel);
        this.add(myPanel);
        MyListener listener = new MyListener(myPanel);
        this.addKeyListener(listener);
        this.setSize(400,300);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLocationRelativeTo(null);
        this.setVisible(true);
    }
}

class MyJPanel extends JPanel{
    int x = 10;
    int y = 10;
    int speed = 1;
   
    public int getSpeed() {
        return speed;
    }

    public void setSpeed(int speed) {
        this.speed = speed;
    }

    public int getX() {
        return x;
    }
   
    public void setX(int x) {
        this.x = x;
    }
   
    public int getY() {
        return y;
    }
   
    public void setY(int y) {
        this.y = y;
    }
   
   
    public void paint(Graphics g){
        super.paint(g);
        g.fillOval(x,y,10,10);
    }
}

class MyListener implements KeyListener{
   
    MyJPanel myPanel;
   
        //此处报告空指针异常
    int x = myPanel.getX();
    int y = myPanel.getY();
   
    int speed = myPanel.getSpeed();
   
    public MyListener(){
        
    }
   
    public MyListener(MyJPanel myPanel){
        this.myPanel = myPanel;
    }
   
    public void keyTyped(KeyEvent e) {
        
    }

   
    public void keyPressed(KeyEvent e) {
        
        if (e.getKeyCode() == KeyEvent.VK_W) {
            myPanel.setY(y - speed);
        } else if (e.getKeyCode() == KeyEvent.VK_S) {
            myPanel.setY(y + speed);
        } else if (e.getKeyCode() == KeyEvent.VK_A) {
            myPanel.setX(x - speed);
        } else if (e.getKeyCode() == KeyEvent.VK_D) {
            myPanel.setX(x + speed);
        }
        myPanel.repaint();
        
    }

   
    public void keyReleased(KeyEvent e) {
        
    }
   
}



备注那里为什么会出现空指针异常  求大神帮忙解决
搜索更多相关主题的帖子: listener public import 
2016-06-24 21:39
jjyy9822
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2016-6-24
得分:0 
Exception in thread "main" java.lang.NullPointerException
    at cn.itcast_02.MyListener.<init>(Demo.java:70)
    at cn.itcast_02.Demo.<init>(Demo.java:21)
    at cn.itcast_02.Demo.main(Demo.java:14)

2016-06-24 21:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-466337-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.681238 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved