| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2503 人关注过本帖
标题:老是空指针异常,改了好些遍,都没成功,大家帮我看一下吧
取消只看楼主 加入收藏
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
快速回复:老是空指针异常,改了好些遍,都没成功,大家帮我看一下吧
数据加载中...
 
   



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

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