mmg*_*o27 1 java swing caret jtextfield
我想要下面的方法来替换a中的文本选择,JTextField并用一些输入替换它String.我的问题是,如果我选择了多个单个字符JTextField,则插入位置会向前跳过.
如何确保插入位置保持在正确的位置?
private void addStringAtCaretPos(String c) {
final int caretPosition = inputTextField.getCaretPosition();
inputTextField.replaceSelection(c);
inputTextField.requestFocus();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
inputTextField.setCaretPosition(caretPosition + 1);
}
});
}
Run Code Online (Sandbox Code Playgroud)
我在JTextField中选择了多个字符,插入位置向前跳过.
final int caretPosition = inputTextField.getCaretPosition();
Run Code Online (Sandbox Code Playgroud)
通常,当您选择从左到右选择的文本时,插入位置位于要替换的文本的末尾.
我认为你应该使用:
final int caretPosition = inputTextField.getSelectionStart();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
176 次 |
| 最近记录: |