2013-10-27 3 views
1

나는 버튼 로그인을 클릭하면 윈도우 탐색기 인터페이스를 엽니에서 JDesktop를 사용하는 코드를 가지고 있고 그것은 바로 작동하고 ..Windows 탐색기를 닫는 방법?

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    // TODO add your handling code here: 
    Desktop desktop = Desktop.getDesktop(); 
    File dirToOpen; 
    try { 
     dirToOpen = new File("C://as//2010-0000-1"); 
     desktop.open(dirToOpen); 
    } catch (IOException ex) { 
     ex.getMessage(); 
    } catch (IllegalArgumentException iae) { 
     System.out.println("File Not Found"); 
    } 
} 

후 지금, 나는 버튼을 로그 아웃의에서 JDesktop 창을 클릭하면 내 문제입니다 탐색기 인터페이스도 닫아야합니다 ... 사용할 코드를 모르겠다.

+0

관심)

PS- 나는 순간에 Windows 시스템에 액세스 할 수없는, 그래서 Process#destory가 작동하는지 모르겠어요 –

답변

1

이것은 간단하지 않으며 문제의 프로세스에 대한 참조가있는 경우에만 표시됩니다. 이것은 당신이 프로세스를보다 잘 제어 할 필요가 있음을 의미 할 것입니다 ... 이것은 또한 Windows에서만 작동한다는 것을 의미합니다 ...

Windows에서 지정된 파일을 보여주기 위해 다음 코드를 사용합니다 탐색기 ...

String path = file.getCanonicalPath(); 

ProcessBuilder pb = new ProcessBuilder("explorer.exe", "/select," + path); 
pb.redirectError(); 
Process proc = pb.start(); 

당신이 Process에 액세스하면, 당신이 시도하고 프로세스를 종료 Process#destory를 사용하여 시도 할 수 있습니다.

프로세스를 시작하는 것은 별도의 스레드에서 수행해야합니다. 따라서 블록 포인트에서 모두 묶이지 않게하려면 Process의 출력을 소비해야 프로세스가 멈추게됩니다. 답변에

관련 문제