2013-06-11 3 views
1

Eclipse 플러그인을 개발 중이며 사용자로부터 의견을 받고 싶습니다. 원래 이클립스 애플리케이션에는 콘솔 2 개를, 새로 열어 놓은 이클립스 플러그인 창에는 콘솔 2 개를 가지고 있기 때문에 문제가있었습니다. 난 그냥 콘솔에서 작성하는 방법을 알고 변수자바 플러그인에서 콘솔 입력 받기

N.B. 작성 무엇을하지 않는 플러그인

public static void writeToConsole(String output) { 

     MessageConsole console = new MessageConsole("My Console", null); 
     console.activate(); 
     ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[]{ console }); 
     MessageConsoleStream stream = console.newMessageStream(); 
     stream.println(output); 
    } 

의 콘솔에 인쇄 아래의 방법을 사용

BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in)); 
     String s = bufferRead.readLine(); 


    System.out.println(s); 

같은 일반적인 방법은 원래 이클립스가 아닌 플러그인 작업

답변

0

당신이 때 사용자 입력을 처리 할 수 ​​있도록 사용자의 입력을 기다리는 UI를 묶어 수 없습니다 받았습니다. 이를 수행하는 한 가지 방법은 문서 수신기입니다. 다음은 입력 된 마지막 줄을 인쇄하는 예제입니다.

 console.getDocument().addDocumentListener(new IDocumentListener() { 
      @Override 
      public void documentChanged(final DocumentEvent event) { 
       if ("\r\n".equals(event.getText())) { 
        final IDocument doc = event.getDocument(); 
        try { 
         final IRegion region = doc.getLineInformationOfOffset(event.getOffset()); 
         try { 
          final String line = doc.get(region.getOffset(), region.getLength()); 
          System.out.println(line); 
         } catch (BadLocationException e) { 
          // TODO Auto-generated catch block 
          e.printStackTrace(); 
         } 
        } catch (BadLocationException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 
       } 
      } 
      @Override 
      public void documentAboutToBeChanged(final DocumentEvent event) { 
       // TODO Auto-generated method stub      
      } 
     });