버튼을 누를 때마다 .wav
파일을 재생하려고합니다.스윙에서 사운드를 재생할 수 없습니다.
리소스를 프로젝트와 함께 작업 공간에 넣었습니다. 틀렸어?
[email protected] /home/fred/workspace/Projekt/src/GUI/sound/gangnam.wav java.lang.IllegalArgumentException가 :
는이 오류 메시지가 :
public static void main (String [] args) { JFrame customBoardFrame = new JFrame("Custom Size."); customBoardFrame.getContentPane().add(new customSize()); customBoardFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); customBoardFrame.setSize(450, 310); customBoardFrame.setVisible(true); customBoardFrame.setResizable(false); }
: 잘못된 형식 여기
코드입니다
public class customSize extends JPanel implements ActionListener {
JButton playButton = new JButton(" >> PLAY <<");
JButton stopButton = new JButton(" >> STOP <<");
JButton pauseButton = new JButton(" >> PAUSE <<");
public customSize(){
setLayout(null);
playButton.setBounds(12, 173, 116, 40);
add(playButton);
playButton.addActionListener(this);
pauseButton.addActionListener(this);
stopButton.addActionListener(this);
stopButton.setBounds(140, 173, 117, 40);
add(stopButton);
pauseButton.setBounds(269, 173, 140, 40);
add(pauseButton);
}
public void actionPerformed(ActionEvent e){
if (e.getSource().equals(playButton)) {
try {
String soundName = "gangnam.wav";
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File(soundName).getAbsoluteFile());
System.out.println(audioInputStream);
System.out.println(new File (soundName).getAbsolutePath());
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
} catch (Exception e1) {
System.out.println("Error.");
}
}
if (e.getSource().equals(stopButton)) {
System.out.println("Stop music.");
}
if (e.getSource().equals(pauseButton)) {
System.out.println("Pause music.");
}
}
}
변경 System.out.println ("오류."); e1.printStrackTrace(); 오류를 찾으십시오 –
파일이 클래스와의 관계에 저장되어 있습니까? '널 (null) '레이아웃 사용을 피하십시오. 픽셀 완벽한 레이아웃은 현대적인 UI 디자인 내에서 환상입니다. 구성 요소의 개별 크기에 영향을주는 요소가 너무 많습니다. 어느 요소도 제어 할 수없는 요소가 너무 많습니다. 스윙은 핵심 레이아웃 관리자와 함께 작동하도록 설계되었으므로 이러한 문제를 해결하고 더 이상 시간을 낭비하지 않아도됩니다. – MadProgrammer
.wav 파일이 프로젝트 루트 아래에 있는지 확인하십시오. 그리고 그것은 PCM wav 형식입니다. wav 파일을 jar 파일로 패키지하는 경우 e1.printStackTrace() 의 출력을 보내 주시면 대단합니다. 그래서 this.getClass(). getResourceAsStream ("gangnam.wav") –