나는 이것이 질문과 같은 질문을하고 몇 시간 동안 스택 오버 플로우를 통해 빗질 후에도 문제를 해결할 수 없었던 것처럼 보입니다. 미안 해요. 내가 명백한 것을 놓친다면.어떻게 최종 문자열없이 다른 스레드를 통해 JLabel을 변경할 수 있습니까?
스레드가 시작될 때마다 jLable의 텍스트를 변경해야하며 스레드가 완료 될 때 다시 변경해야합니다. 간단히 말해 현재 실행중인 스레드의 수를 표시하려고합니다.
jobQueueView
은 정적이며 최종 jLabel입니다. Main
은 jLabel을 가진 jFrame입니다. jobQueue
은 정적 int입니다. 각 스레드의 끝에서
jobQueue += 1; refreshQueue();
:
각 스레드의 시작에서jobQueue -= 1;refreshQueue();
그리고 마지막으로
public void refreshQueue() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Main().jobQueueView.setText(Integer.toString(jobQueue));
}
});
}
이 작동하지 않습니다. 어떤 아이디어? 감사합니다
편집 : 버튼 클릭 이벤트
Can I change the text of a label from a Thread in Java?에 : 앤드류 톰슨 Swing JLabel text change on the running application의 지시에 따라, 문자열이 최종 확인한다. 안돼.
Update JLabel from another thread는 : 타이머, 내가 스레드 수
JLabel on JPanel doesn't update when setText from another method을 필요로 사용 : 주어진 솔루션을 시도했다. did not work
Thread and JLabel in Swing- Not working properly : 버튼 클릭 수가 많지만 솔루션이 다릅니다. 아직 didnt 한 일
http://stackoverflow.com/questions/6578205/swing-jlabel-text- 스레드
의 시작에서 그리고 그것의 끝에
실행 중 응용 프로그램 변경 : 버튼 클릭 이벤트 http://stackoverflow.com/questions/26495337/can-i-change-the-text-of-a-label-from-a-thread -in-java : 문자열을 final로 만들어야합니다. 안돼. http://stackoverflow.com/questions/5895481/update-jlabel-from-another-thread?rq=1 : 타이머를 사용합니다. 스레드 수를 계산해야합니다. @Andrew Thompson 이들은 지금 내가 열어 본 것들이지만 나는 더 많은 것을 시도했다 –
@ AndrewThompson 5 of 5. 당신의 도움에 감사합니다 –
* "5 of 5."* 좋은 질문입니다. .. 미안해, 나는 그 해답을 모르지만, 지금은 정보가 잘하면. 가 포함되어 있다면 ** 답할 수있는 사람들에게 그렇게 할 수있는 상황을 제공 할 수 있습니다. –