2015-01-29 5 views
0

구현 된 Java 메소드 JFileChooser를 통해 파일을 열면 아무 것도 열지 않고 대신 메뉴를 종료 할 수 있지만 그다지 잘 작동하지 않는 것 같습니다. 일부 예제 코드 :파일을 선택하지 않은 상태에서 파일 메뉴를 처리합니까?

JFileChooser fc = new JFileChooser(); 
fc.showOpenDialog(null); 
File selFile = fc.getSelectedFile(); 
String filename = selFile.toString(); 

무슨 일이 파일을 따기하지 않고 메뉴를 종료하지만 의도 한대로 다음 모든 여전히 작동 할 때 어떤 스레드가 충돌처럼 보이는 것입니다.
String filename = selFile.toString(); 라인을 둘러 보았습니다 (시도가있는 곳에서 보이는 것 같습니다) 시도는 &입니다. 그 결과는 여전히 동일합니다.

그래서 내가 알고 싶은 것은 이것이 일어나는 원인이 무엇인지, 그것을 고치는 법, 그리고 백그라운드에서 죽는 (겉으로보기에 의미가없는) 스레드에 대해 신경을 쓰지 않아야하는지 여부입니다.

답변

1

이어야합니다. 파일 선택기의 반환 코드를 확인하여 사용자가 실제로 파일을 선택했는지 또는 선택하지 않고 대화 상자를 닫았는지 확인하십시오.

int returnVal = fc.showOpenDialog(); 
if(returnVal == JFileChooser.APPROVE_OPTION) { 
    System.out.println("You chose to open this file: " + 
     fc.getSelectedFile().getName()); 
} 
else { 
    // handle non-selection here 
} 

공식 문서를 참조하십시오 : http://docs.oracle.com/javase/7/docs/api/javax/swing/JFileChooser.html

+0

이 여기 내 주요 문제에 대답하는 동안 어떤 영향을 백그라운드에서 죽을 스레드가 더 큰 그림을 가지고 않습니다로서, 나는 아직도 궁금 하군요? 어쨌든 도움을 주셔서 감사합니다 :) – MrGuy

관련 문제