我正在尝试使用Java Swing制作文本编辑器。在这我使用JEditorPane而不是JTextArea。我在删除选定文本并从JEditorPane中替换选定文本时遇到问题。我使用的代码是:删除和替换JEditorPane中的选定文本
public void delete(JEditorPane txt)
{
int start = txt.getSelectionStart();
int end = txt.getSelectionEnd();
String startText = txt.getText().substring(0,start);
String endText = txt.getText().substring(end,txt.getText().length());
txt.setText(startText + endText);
}
我这里面临的问题是,当我考虑getSelectionStart()和getSelectionEnd()的价值,他们不这样做,但在使用子考虑换行符,正在考虑换行符。因此,如果我在一行之前使用此代码之前有5个换行符,则不是删除所选文本,而是从小于所选文本5的位置删除文本。与Replace一样。请帮忙。
我觉得他们都考虑换行字符,但Windows实际上使用两个字符作为换行符(回车+换行),这似乎在这里引起混乱。 – 2009-12-31 11:52:19