2
두 번째 클릭시이 루핑 웨이브를 일시 중지하려고하는 두뇌를 두드리고 있습니다. 어디서 잘못 되었나요? OP 도움이 솔루션의jToggle 버튼을 두 번 누르면 어떻게 멈출까요?
private void jToggleButton2ActionPerformed(java.awt.event.ActionEvent evt) {
JToggleButton btn = (JToggleButton) evt.getSource();
if (btn.isSelected()) {
try {
String soundName = "yourSound.wav";
AudioInputStream audioInputStream = null;
try {
audioInputStream = AudioSystem.getAudioInputStream(new File(soundName).getAbsoluteFile());
} catch (UnsupportedAudioFileException | IOException ex) {
Logger.getLogger(GEN.class.getName()).log(Level.SEVERE, null, ex);
}
Clip clip = null;
try {
clip = AudioSystem.getClip();
} catch (LineUnavailableException ex) {
Logger.getLogger(GEN.class.getName()).log(Level.SEVERE, null, ex);
}
clip.open(audioInputStream);
clip.start();
clip.loop(100);
} catch (LineUnavailableException | IOException ex) {
Logger.getLogger(GEN.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
try {
}
토글 버튼은 두 가지 상태를 가정한다. 당신은 [this] (http://stackoverflow.com/a/7524627/1572356)을 확인할 수 있으므로 버튼의 상태를 가져 오는 방법을 알 수 있습니다. –
두 상태를 등록하는 것은 문제가되지 않습니다.이 함수는 출력 함수로 테스트했습니다. 두 번째 클릭이 등록되면 루프 된 오디오가 중지됩니다. – Sc001010tt
Clip 객체에서 사용할 수있는'stop' 메서드가 있습니다. . 메소드 밖의 클립을 정의하십시오. 버튼이 토글되지 않으면, 클립은 null이 아니며'isRunning()'을 클립하고'stop()'합니다. –