java键侦听器空指针异常

dwthyt8l  于 2021-07-04  发布在  Java
关注(0)|答案(1)|浏览(318)

这个问题在这里已经有答案了

什么是nullpointerexception,如何修复它(12个答案)
4个月前关门了。
我是java初学者。我试图使一个图形用户界面游戏,我想添加关键适配器,但我不知道我应该从哪里得到作为参数开始-哪里是jframe扩展幻灯片哪里是新的布局设置(面板按钮等)休闲-哪里是settext改变
我使用许多不同的类,如颜色和字体,但我认为我不必包括这一点。
下面是引发空指针异常的两个片段。我必须将我尝试过的所有类作为参数添加到构造函数中,但都不起作用。毕竟下面是代码:
casual.java(片段)

public void firstDay(){
            pv.movingHandlerON=true;
            start.addKeyListener(new MovingChoiceHandler(slides)); // naprawic !
            music.setMusic(pv.musicDay);
            music.loopMusic(99);
            music.startMusic();
             slides.textPanel.setText("You had the accident in forrest.\nYou take all u got and go 
            into adventure.\n\nWhere do You want to go?\n\n[Q] Go forest Pathway  [Z] Go Muddy 
             road");

       }

java(无需导入和打包的完整代码)

public class MovingChoiceHandler extends KeyAdapter {
        PlayerVariables pv=new PlayerVariables();
        Start start;
        Slides slides;
        Casual casual;

        MovingChoiceHandler(Slides slides){
    this.start=slides.start;

        }

    // tutaj przez strzałki bedziemy zmieniac slajdy
        public void keyPressed(KeyEvent e){
          //  if(pv.movingHandlerON==true) {
                switch (e.getKeyCode()) {

                    case KeyEvent.VK_Q:
                        System.out.println("Sprawdzanie gory check");
                        break;

                    case KeyEvent.VK_W:
                        System.out.println("Sprawdzanie dolu check");
                        break;

                }
            //}
        }

    }

如果你在这里感兴趣,它是完整的代码,如果你在这里没有看到任何问题。就像我说的,我试过开始、休闲和幻灯片,但它仍然抛出这个例外
this.slides=幻灯片;
this.start=幻灯片.start;
完整代码:
开始.java:https://pastebin.com/tmv7td8x
startbuttonhandler(开始->幻灯片):https://pastebin.com/3zx1czgt
幻灯片.java:https://pastebin.com/bebr4qbk (临时添加到幻灯片中时没有处理程序)
休闲.java:https://pastebin.com/mr1ds1cj
movingchoicehandler.java:移动选项处理程序:https://pastebin.com/rxtskn4c
(在casual的第一个方法中添加,以更改下一个“幻灯片”

sd2nnvve

sd2nnvve1#

那时在幻灯片中,我发送了新的临时(开始),即使我在这节课上收到了开始
新休闲(本);
在休闲中:

Casual(Slides slides){

this.slides=slides;
this.start=slides.start;
 }

我也在下面
start.addkeylistener(新的movingchoicehandler(slides));
在移动选择处理器中我设置了:

MovingChoiceHandler(Slides slides){
                 this.slides=slides;
                 this.start=slides.start;
        }

而且很有效:)

相关问题