public void playMet() {
int tempo = Integer.parseInt(met_speed.getText());
tempo = tempo/60;
int delay = tempo*1000;
if(Play.isSelected()) {
try {
FileInputStream in = new FileInputStream(new File("Click1.wav"));
AudioStream as = new AudioStream(in);
AudioPlayer.player.start(as);
Thread.sleep(tempo*1000);
playMet();
}
catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
else
System.out.println("not playing");
}
여기에 내 코드 섹션이 있습니다. 기본적으로 버튼을 누르면 분당 X 번 클릭이 재생됩니다.
다음과 같이 while 루프로 코드를 시도했습니다.
while(Play.isSelected()) {
.........
.........
}
그리고 그것도 작동하지 않았습니다. 두 경우 모두 프로그램이 정상적으로 실행되지만 멈춰서 작업 관리자에서 종료해야합니다.
버튼을 눌렀을 때 함수를 호출하고 선택을 취소하면 중지 할 수있는 방법은 무엇입니까?
추신 방금 아래 두 게시물을 보았습니다. 일하러 가야하고, 나중에 그것들을 확인하고 그들이 일하는지 볼 것입니다. 도와 주셔서 감사합니다.
재귀 호출이 이벤트 디스패치 스레드를 차단합니다 . EDT를 차단하지 않으려면 새 스레드를 만들어야합니다.
public void playMet()
{
Thread t = new Thread(new Runnable()
{
@Override
public void run()
{
while(Play.isSelected()){
//Your code
}
}
};
t.start();
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다