我正在研究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
我仍然无法实现。请帮助有关如何将插入符号放置在输出的下一行中。