【发布时间】:2021-08-20 17:07:40
【问题描述】:
我正在创建一个使用 JTextArea 的程序,当我尝试更改插入符号的位置时,它从以下位置开始:
hello
Hello there
-
|
代码:
public void executeCommand(String cmdName){
Boolean cmdFound = false;
for(int i = 0; i < cmdNames.size(); i++){
if(cmdNames.get(i).toLowerCase().equals(cmdName.toLowerCase())){
cmdFound = true;
cmds.get(cmdName).actionPerformed(new ActionEvent(this, 0, null));
Config.cmdln.println("-");
Config.cmdln.setCaretPosition(Config.cmdln.getText().length()); //part that changes
break;
}
}
if(!cmdFound){
Terminal.cmdln.println("Command " + "\"" + cmdName + "\"" + " not found.");
}
到这里:
hello
Hello there
|-
代码:
public void executeCommand(String cmdName){
Boolean cmdFound = false;
for(int i = 0; i < cmdNames.size(); i++){
if(cmdNames.get(i).toLowerCase().equals(cmdName.toLowerCase())){
cmdFound = true;
cmds.get(cmdName).actionPerformed(new ActionEvent(this, 0, null));
Config.cmdln.println("-");
Config.cmdln.setCaretPosition(Config.cmdln.getText().length() - 1); //part that changes
break;
}
}
if(!cmdFound){
Terminal.cmdln.println("Command " + "\"" + cmdName + "\"" + " not found.");
}
这是我想要的输出:
hello
Hello there
-|
注意:“|”表示插入符号
如果您需要更多代码,请告诉我。
【问题讨论】:
-
据我了解,您希望将插入符号放在文本的末尾...如果是这种情况,只需删除设置插入符号位置的行上的
- 1 -
我试过了,但是中间有一个空格
-
还有其他方法可以改变插入符号的位置吗?
-
我不确定以下内容,但您可以添加`+1`,因为您正在打印
-之前的行。 -
解决了,非常感谢。把它放在一个答案中,这样我就可以接受它。
标签: java swing jtextarea caret