我正在创建一个使用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
-|
注:"|"表示插入符号
如果你还需要密码就告诉我。
2条答案
按热度按时间v8wbuo2f1#
您可以简单地将
Config.cmdln.getText().length() - 1
替换为Config.cmdln.getText().length() + 1
(-
已更改为+
)。这是可能的,因为您在前面添加了一个带有
println()
的字符。ff29svar2#
您也可以更改此设置:
改为:
如果您希望在末尾使用空行,可以在设置插入符号后添加新行。