如何在Eclipse IOConsoleViewer的下一行中设置插入符号或光标?

时间:2018-08-04 19:34:44

标签: java eclipse eclipse-plugin swt eclipse-rcp

我正在研究Eclipse RCP应用程序的交互式控制台视图。我能够创建控制台,也能够获取输入并显示输出。此处的主要问题是闪烁的插入符号或光标不在下一行中。我厌倦了在互联网上搜索。以当前问题为例。

:<您叫什么名字?

:>我的名字叫汤姆。

|:<< / strong>

在这种情况下,光标或闪烁的插入记号位于行的开头,如上所示。实际输出应如下所示。

:<|

我在代码下方提供

private void createConsole3() {
        IOConsole console =  new IOConsole("Some Name", null);
        IOConsoleViewer cv = new IOConsoleViewer(window.getShell(), console);
        ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[] { console });
        console.activate();

        BufferedReader reader = new BufferedReader(new InputStreamReader(console.getInputStream()));
        IOConsoleOutputStream out = console.newOutputStream();


        final IDocument document = cv.getDocument();//console.getDocument();
        document.addDocumentListener(new IDocumentListener() {
            @Override
            public void documentChanged(DocumentEvent event) {
                if (ENTER_KEY.equals(event.getText())) {
                    try {
                        String  textEntered = reader.readLine();
                        System.out.println("You entered :::"+textEntered);
                        out.write(">Hati\n".getBytes());
                        out.write(">".getBytes());
                        cv.getTextWidget().setCaretOffset(cv.getDocument().getLength());
//                      cv.getTextWidget().setSelection(cv.getTextWidget().getCharCount());
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            }
            @Override
            public void documentAboutToBeChanged(DocumentEvent event) {

            }
        });
    }

我已经看过其他stackoverflow帖子,例如 How to set the Caret of the IOConsole

我仍然无法实现。请帮助有关如何将插入符号放置在输出的下一行中。

0 个答案:

没有答案