如何让EasySound(.wav播放器)在我的代码中工作?

时间:2017-01-20 17:16:22

标签: java audio

我正在为我的AP ComSci课程创建一个算命先生计划,但我不能让ping.wav按照说明工作。

说明:编辑fortuneTeller.java随机回赠一个运行ping.wav的" Next"按下按钮。将EasyClasses.jar添加为必需的库。

到目前为止,这是我的代码:

// Fortune Teller

import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JButton;

public class FortuneTeller extends JFrame implements ActionListener{

//  private static final EasySound ding = new EasySound("ding.wav");

  private String[] fortune = {"You will find a penny", "You like cheese", "You will get a car","You will get ebola",
    "You will becomea DOTA pro"};

  private JTextField display;

  public FortuneTeller()
  {
    super("Fortune Teller");

    display = new JTextField("  Press \"Next\" to see your fortune...", 25);
    display.setBackground(Color.WHITE);
    display.setEditable(false);

    JButton go = new JButton("Next");
    go.addActionListener(this);

    Container c = getContentPane();
    c.setLayout(new FlowLayout());
    c.add(display);
    c.add(go);
  }

  public void actionPerformed(ActionEvent e)
  {
    // Pick and display a random fortune:

    int r = (int)(Math.random() * 5);

    String f = fortune[r];

    display.setText("  " + f );
//    ding.play();
  }

  public static void main(String[] args)
  {
    JFrame window = new FortuneTeller();
    window.setBounds(300, 300, 300, 100);
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    window.setResizable(false);
    window.setVisible(true); 
  }
}

代码返回ping.wav注释掉的财富,但是当我尝试取消注释时,我收到错误说" EasySound无法解析为类型"。我有其他使用EasySound的代码,不会出现此错误。我已将EasyClasses.jar与ping.wav一起添加到项目文件夹中。如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

  

我已将EasyClasses.jar与ping.wav

一起添加到项目文件夹中

仅将jar添加到项目文件夹是不够的。你也必须将它导入你的课程。

导入import javax.swing.JButton; import java.awt.Color;后,您必须导入EasyClasses

例如:import com.a.b.EasyClasses;这里com,a和b是包名称,您将EasyClasses.java导入到jar文件中这些包内的项目。