Java 我尝试制作一个随机的歌曲播放器失败了
我试着创建一个系统,你点击按钮,它会播放五个可能的midi文件中的一个。它总是只播放第一首歌,请帮忙。整数Java 我尝试制作一个随机的歌曲播放器失败了,java,swing,button,audio,switch-statement,Java,Swing,Button,Audio,Switch Statement,我试着创建一个系统,你点击按钮,它会播放五个可能的midi文件中的一个。它总是只播放第一首歌,请帮忙。整数i被随机选择,但URL不会从sus2更改,原因我不知道,因此音频保持不变 import java.net.URL; import java.awt.event.*; import javax.swing.ImageIcon; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JFrame;
i
被随机选择,但URL不会从sus2
更改,原因我不知道,因此音频保持不变
import java.net.URL;
import java.awt.event.*;
import javax.swing.ImageIcon;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Option extends JFrame implements ActionListener{
/**
*
*/
private static final long serialVersionUID = 1L;
URL image= this.getClass().getResource("/tick.png");
URL url = this.getClass().getResource("/sus.mid");
ImageIcon img = new ImageIcon(image);
JButton testBut = new JButton(img);
JPanel pnl = new JPanel();
java.applet.AudioClip audio = JApplet.newAudioClip(url);
public Option(){
super("Swing Window");
pnl.add(testBut);
add(pnl);
setSize( 500,350);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
testBut.addActionListener(this);
}
public void actionPerformed(ActionEvent event){
if (event.getSource() == testBut) {
int i = (int) Math.ceil(Math.random() * 5);
switch(i){
case 1: url = this.getClass().getResource("/sus.mid");
case 2: url = this.getClass().getResource("/sus2.mid");
case 3: url = this.getClass().getResource("/sus3.mid");
case 4: url = this.getClass().getResource("/sus4.mid");
case 5: url = this.getClass().getResource("/sus5.mid");
System.out.println(i);
}
audio = JApplet.newAudioClip(url);
audio.stop();
audio.play();
}
}
public static void main(String[] args){
Option gui = new Option();
}
}
您忘记了每个案例块后的中断指令:
case 1:
url = this.getClass().getResource("/sus.mid");
break;
case 2:
url = this.getClass().getResource("/sus2.mid");
break;
...
这就是问题所在。另外,我建议你完全摆脱开关。类似于:this.getClass().getResource(“/sus”+i+”.mid”);