관심 영역을 결정한 다음 해당 영역의 객체를 인식하는 두 가지 주요 단계가있는 프로그램을 작성하고 있습니다. 내 인터페이스에는 단일 JProgressBar가 있으며 현재 작업중인 단계를 나타내려고합니다. 간단한 "선형"접근 방식으로 두 번째 메시지 만 표시된다는 것을 알았습니다. 따라서 https://stackoverflow.com/a/277048 다음에 Runnables 및 SwingUtilities.invokeLater를 사용하여 진행률 막대의 문자열을 설정합니다.JProgressBar의 setString이 두 번 이상
private class MarkListener implements ActionListener {
public void actionPerformed(ActionEvent ae) {
mainFrame.getGlassPane().setCursor(new Cursor(Cursor.WAIT_CURSOR));
recognitionProgress.setStringPainted(true);
BlueMarkerTask bmt = new BlueMarkerTask();
bmt.addPropertyChangeListener(PrismRunnable.this);
SwingUtilities.invokeLater(new Runnable(){
public void run(){
recognitionProgress.setString("Marking ROI...");
}
});
bmt.execute();
RecognitionTask rt = new RecognitionTask();
rt.addPropertyChangeListener(PrismRunnable.this);
SwingUtilities.invokeLater(new Runnable(){
public void run(){
recognitionProgress.setString("Segmenting...");
}
});
rt.execute();
}
}
그러나 이것은 작동하지 않습니다. "분할"만 진행률 막대의 텍스트에 남아 있습니다.
이미 SwingUtilities 대신 EventQueue를 사용해 보았지만 아무 소용이 없습니다. 그래서, 나는 어떻게 이것에 관해 가야합니까?