2013-07-21 3 views
0

Runtime.getRuntime.execute();를 사용하여 cmd 명령을 실행중인 스윙 응용 프로그램을 개발 중입니다. BufferReader를 사용하여 명령 출력을 읽는 것. 이제 내가 원하는 것은 텍스트를 (JTextPane 사용하기) 텍스트 필드를 텍스트 영역의 텍스트를 변경하여 대화 상자에 표시하고, 선행 조건로드를위한 다른 IDE의 Eclipse를 시작하는 동안 볼 수있는 것처럼 명령 출력을 표시하는 것입니다.스윙에서 텍스트가 바뀌는 대화 상자

JDialog 클래스의 하위 클래스를 만들었지 만 원하는 것은 수행하지 않습니다.

내 코드 :

Process p = Runtime.getRuntime().exec(commandToBeExecuted); 
      BufferedReader in = new BufferedReader(newInputStreamReader(p.getInputStream())); 
      String line = null; 
        MessageDialog myDialog=new MessageDialog(UserInterface.this); 

      while ((line = in.readLine()) != null) { 
        System.out.println(line); 
        myDialog.setText(line); 
        myDialog.setVisible(true); 
        myDialog.setLocationRelativeTo(UserInterface.this); 
      } 
     } catch (Exception ex) { 
      Logger.getLogger(UserInterface.class.getName()).log(Level.SEVERE, null, ex); 
      errorGlobal.setText("Some Exception Occured in update "+ex.getMessage()); 
      System.out.println("Exception occured " + ex.getMessage()); 
     } 

은 내가 원하는 무엇 이것을 달성하는 가장 좋은 방법이 될 것입니다 할 수 있습니까?

+0

JTextArea.append를 사용하고 루프 외부에 나머지를 넣으십시오. 1) [Runtime.exec()가 실행되지 않을 때]의 모든 권장 사항을 읽고 구현하십시오. http://www.javaworld.com/ jw-12-2000/jw-1229-traps.html). 그게 문제를 해결할 수도 있습니다. 그렇지 않은 경우 실패한 이유에 대한 자세한 정보를 제공해야합니다. 그런 다음'exec'를 참조하고'ProcessBuilder'를 사용하여'Process'를 빌드한다는 것을 무시하십시오. 또한'String arg'를'String [] args'로 분해하여 그들 자신이 공백을 포함하는 인수를 설명하십시오. 2) 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. –

+0

당신은 그것이 내가 원하는 것을하지 않는다고 말합니다. 그게 무슨 뜻 이니? – tbodt

+0

이 [예제] (https://www.dropbox.com/s/ocv7zhospy95map/SwingWorkerExample.java)를 살펴보면 원하는 아이디어를 얻을 수 있습니다. 프로그램을 실행하고'시작 '버튼을 클릭 한 다음 콘솔에 아무 것도 입력하지 않으면'JTextArea'에 표시되고, 콘솔에서 읽는 것을 중지하려면'중지 '버튼을 클릭하십시오. 그것이 완전히 끝나지는 않았지만 지금 진행 중입니다 :-) –

답변

0

문제가 반복됩니다.

+0

JtextArea를 사용하고 있지 않습니다. 추가 텍스트를 사용하고 있는데 두 번째로 선택합니다. 같은 텍스트를 새 텍스트로 바꾸고 싶습니다. 작동하지 않습니다. – pyus13

+0

* "JtextArea를 사용하지 않습니다."* 더 나은 도움을 받으려면 ... 아프게 왜? 전에 너는 나를 무시 했어. –

관련 문제