2013-02-09 4 views
2

나는 progressBar를 처음으로 사용하려고합니다. progressBar를 사용하여 스레드를 기록하고 싶습니다 --- this을 보았지만 도움이되지 않았습니다.progressBar를 사용하여 스레드 진행률을 보는 방법

사람이 작업을 수행하는 방법을 알고 있나요?

progressBar를 업데이트하기 위해 mp3 파일의 바이트를 사용했지만 시도가 실패했습니다. mp3 파일을 재생하는 데 사용하는 스레드를 사용하고 싶습니다.

이것은 mp3 플레이어의 스크린 샷입니다. HTML5는 새 진행 태그를 확인할 수 있습니다 허용되는 경우

The mp3 player I'm working on

+0

이미 자습서를 읽어 보시기 바랍니다. 우리가 그것에 무엇을 더할 수 있습니까? 어떻게 도움이되지 않았습니까? 뭐가 문제 야? 시도해 봤니? 코드는 어딨어? –

답변

1

일반적인 문제는, 당신은 또한 적절한 GUI를 필요로 갱신합니다. 얼마 전에 진행 막대를 사용하여 비동기 로딩을했는데, 그 튜토리얼을 정확히 사용했습니다.

압축 오디오 파일의 경우 처음에는 완전한 압축 풀기를 수행하지 않고 바이트 카운터 사용이 정확하지 않을 수 있습니다.

그것은 당신이, 예를 들어, ProgressBar의 값을 설정하고 게임을 시작하기 전에 적절하게 constructor 및/또는 setMaximum(), setMinimum()setValue() 사용 & 최대 min으로하는 것이 물론 중요하다

progressBar.setMinimum(0); 
progressBar.setMaximum(totalTime); 
progressBar.setValue(0); 

하지만 가 아닌 작업자 스레드에서

progressBar.setValue(elapsedTime); 

는, 예를 다음과 같이 작업자 인스턴스 내에서 PropertyChangeListener 인터페이스와 SwingWorkersetProgress()를 사용합니다. 그냥 여러분의 필요에 코드를 적용 :

http://docs.oracle.com/javase/tutorial/uiswing/examples/components/ProgressBarDemoProject/src/components/ProgressBarDemo.java

+0

스레드를 사용하여 스레드를 모니터링하려고합니다.하지만 스레드가 얼마나 오랫동안 실행되는지 알 필요가 없으므로 불가능 해 보입니다. Id3v2 태그를 얻기 위해 추가 라이브러리를 사용하기로 결정했습니다.이 태그를 사용하여 mp3 파일의 길이를 찾습니다. progressBar를 계속 업데이트하려면 stackoverflow.com/questions/2437141/run-java-thread-at-specific-times를 사용하여 자체 일정을 유지하는 추가 스레드가 있어야합니다. @Sam Thank You! – Adeeb

+0

반갑습니다. 작동하기 때문에이 튜토리얼의 코드를 사용하여 간단하게 유지할 것을 권장한다. 실제 문제는 재생 상태를 검색하는 것 같습니다. Java 7에는 몇 가지 나쁜 보안 허점이 있지만 mp3 파일을 재생할 수있는 멋진 FX 클래스가 있으며 정확한 재생 상태를 제공합니다. http://stackoverflow.com/a/10237397/1175253 – Sam

관련 문제