最后一个字符' 我的字符串末尾的'已修改为空格字符

2022-05-29 00:00:00 newline java swing jtextfield

我希望检索JTextField中文本结尾处的换行符,但是在将文本字段的文本设置为我的字符串后,它被修改为空格字符。下面的代码突出显示了该问题。

是否可以保留文本字段中的

import javax.swing.JTextField;

public class StackOver {
    public static void main(String[] args) {
        String hasNewLineEscapeCharacter = makeStringWithNewLineCharacter();
        JTextField backgroundText = new JTextField(90);
        backgroundText.setText(hasNewLineEscapeCharacter);
        char spaceChar = backgroundText.getText().charAt(backgroundText.getText().length()-1);
        char newLineChar = hasNewLineEscapeCharacter.charAt(needsNewLineEscapeCharacter.length()-1);
    }

    public static String makeStringWithNewLineCharacter() {
        String str = "hello,world!";
        str += ('
');
        return str;
    }       
}

解决方案

有没有可能保存‘ ‘在我的JTextfield中?

AJTextField使用PlainDocument,它包含筛选" "并用空格字符替换。

要在文本字段中保留换行符,可以尝试:

textField.getDocument().putProperty("filterNewlines", Boolean.FALSE);

但是,这将导致文本显示在两行上,就像文本区域一样。

因此,如上所述,您应该只使用JTextArea。

无法在一行中显示包含换行符的文本。

您可能要做的是在文本字符串中存储一些其他不可打印的字符,然后使用String.replaceAll(...)如果您需要访问添加了换行符的文本。

相关文章