为什么在我为 JTextArea 设置 Caret 位置后文本会发生变化?
Why does the text change after I set the Caret position for JTextArea?
我正在创建一个使用 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
-|
注:“|”代表插入符号[=15=]
如果您需要更多代码,请告诉我。
您只需将 Config.cmdln.getText().length() - 1
替换为 Config.cmdln.getText().length() + 1
(-
已更改为 +
)。
这是可能的,因为您在前面的 println()
行中添加了一个字符。
我正在创建一个使用 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
-|
注:“|”代表插入符号[=15=]
如果您需要更多代码,请告诉我。
您只需将 Config.cmdln.getText().length() - 1
替换为 Config.cmdln.getText().length() + 1
(-
已更改为 +
)。
这是可能的,因为您在前面的 println()
行中添加了一个字符。