파일에 주어진 점 집합을 플롯하는 작은 스윙 응용 프로그램을 만들고 있습니다. 지침에 따라 다음 코드를 사용하여 GUI 용 새 스레드를 호출 할 것을 제안했습니다. 응용 프로그램의 시나리오스윙 스레드 통신
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new View().setVisible(true);
}
});
하나는 (A JFileChooser
를 사용하여 수행됩니다) 파일을 열 수 있습니다.
private void openMenuItemActionPerformed(java.awt.event.ActionEvent evt) {
int returnVal = fileChooser.showOpenDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fileChooser.getSelectedFile();
//some heavy operations
} else {
System.out.println("File access cancelled by user.");
}
}
점을 작도하기 전에 수행해야 할 과중한 작업이 있습니다.
제 질문은 GUI
스레드에 무거운 코드를 삽입하는 것이 좋습니까? 처리를 위해 주 스레드에 파일 객체를 보내고 결과를 GUI
스레드로 보낼 수 있습니까?
자바 스레딩 API에 대해서는 잘 모릅니다.
http://www.theeggeadventure.com/wikimedia/index.php/SwingWorker_Example http://weblogs.java.net/blog/mkarg/archive/2010/01/03/did-you- know-swingworker-can-send-progress-status라는 두 링크가 도움이되었습니다. – addy