Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我是如何得到NullPointerException的?与JApplet合作_Java_Swing_Audio_Nullpointerexception_Japplet - Fatal编程技术网

Java 我是如何得到NullPointerException的?与JApplet合作

Java 我是如何得到NullPointerException的?与JApplet合作,java,swing,audio,nullpointerexception,japplet,Java,Swing,Audio,Nullpointerexception,Japplet,我已经很久没有使用java了,我忘记了如何处理NullPointerException。我唯一能想到的就是第8行。我不确定我是否应该这样从java文件所在的文件夹中检索音频文件 这是我第一次使用AudioClip。如果这是问题所在,正确的方法是什么? 提前感谢您提供的任何帮助/提示 如果我能提供任何其他信息来帮助您帮助我,请让我知道。:) [此代码的目的是创建三个按钮,允许用户播放、循环和停止音乐] import javax.swing.*; import java.applet.*; impo

我已经很久没有使用java了,我忘记了如何处理NullPointerException。我唯一能想到的就是第8行。我不确定我是否应该这样从java文件所在的文件夹中检索音频文件

这是我第一次使用AudioClip。如果这是问题所在,正确的方法是什么? 提前感谢您提供的任何帮助/提示

如果我能提供任何其他信息来帮助您帮助我,请让我知道。:)

[此代码的目的是创建三个按钮,允许用户播放、循环和停止音乐]

import javax.swing.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class ProgAsThree extends JApplet
{
   private AudioClip music = Applet.newAudioClip(getClass().getResource("Music.mp3"));
   private JButton jbtPlay = new JButton("Play");
   private JButton jbtLoop = new JButton("Loop");
   private JButton jbtStop = new JButton("Stop");

   public ProgAsThree()
   {
      JPanel panel = new JPanel();
      panel.add(jbtPlay);
      panel.add(jbtLoop);
      panel.add(jbtStop);
      add(panel);

      jbtPlay.addActionListener(new ActionListener()
      {
         @Override
         public void actionPerformed(ActionEvent e)
         {
            music.play();
         }
      });

      jbtLoop.addActionListener(new ActionListener()
      {
         @Override
         public void actionPerformed(ActionEvent e)
         {
            music.loop();
         }
      });

      jbtStop.addActionListener(new ActionListener()
      {
         @Override
         public void actionPerformed(ActionEvent e)
         {
            music.stop();
         }
      });      

     } 
 }                  

java.lang.NullPointerException
applet.AppletAudioClip.(AppletAudioClip.java:65)
位于java.applet.applet.newAudioClip(applet.java:311)
在progastree上。(progastree.java:8)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:525)
位于java.lang.Class.newInstance0(Class.java:372)
位于java.lang.Class.newInstance(Class.java:325)
在sun.applet.AppletPanel.createApplet(AppletPanel.java:795)中
位于sun.applet.AppletPanel.runLoader(AppletPanel.java:724)
运行(AppletPanel.java:378)
运行(Thread.java:722)

上次我检查时,
音频剪辑
无法处理MP3格式(开箱即用)。有关修复方法,请参阅。

我猜
getResource(“Music.mp3”)
返回了
null
。如果是这样的话,我应该输入文件的整个路径吗?我建议您在服务器上使用一个URL,您将在那里托管
小程序。
。我不打算创建网页。这实际上是一个课堂作业。如果这是唯一的方法,那么我想我必须。相对于源文件,
Music.mp3
在哪里。。。?
java.lang.NullPointerException
at sun.applet.AppletAudioClip.<init>(AppletAudioClip.java:65)
at java.applet.Applet.newAudioClip(Applet.java:311)
at ProgAsThree.<init>(ProgAsThree.java:8)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at java.lang.Class.newInstance0(Class.java:372)
at java.lang.Class.newInstance(Class.java:325)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:795)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:724)
at sun.applet.AppletPanel.run(AppletPanel.java:378)
at java.lang.Thread.run(Thread.java:722)
public void init() {
    // ..
    URL pathToClip  = new URL(getCodeBase(), "Music.mp3");
    music = Applet.newAudioClip(pathToClip);