0

我正在使用终端仿真器,其主视图占位符是JTextPane. 每当键入一个字符时,out.write(c)就会执行一个函数,然后调用一个函数来设置字符的样式并将文本字符串插入 JTextPane doc 中。每次按下该键时,都会重绘内容。

模拟器不执行与箭头键相关的功能(命令历史的向上和向下),但使用Ctrl-F, Ctrl-B, Ctrl-P, Ctrl-N组合。发生的事情是插入符号在 JTextPane 的最左上角不断闪烁。它不会根据终端光标焦点移动。令人惊讶的是,当我在模拟器中键入内容时,使用Ctrl-B返回到以前输入的字符,然后按退格键,正确的字符被删除,这意味着光标焦点在正常命令提示符下正常工作。只是插入符号没有以某种方式获得该位置。

我尝试了这种方法:

        int len = terminalArea.getDocument().getLength();
        terminalArea.setCaretPosition(len);

Ctrl-B但这总是将插入符号指向最后输入的字符,并且Ctrl-F在按下和 时不会来回移动。在这方面我需要帮助,即如何在模拟器中获取 shell 光标所指向的位置,并在此时显示插入符号?

4

0 回答 0