我想知道是否有一种简单的方法来处理JTextField中的转义字符。问题是getText()将转义转义字符。当然,这在大多数情况下都是首选行为,但如果您希望允许用户自由地为CSV文件(包括\ t)提供分隔符,则不会这样做。有什么想法吗?
鲍勃
答案 0 :(得分:1)
您始终可以覆盖swing组件中任何和所有公共函数的行为。它被称为“专业化”。例如,您可以创建自己的MyJTextField
类并覆盖getText()
方法。
答案 1 :(得分:0)
JTextField只是一个View,所以它里面总是有一个模型,这个模型是Document
类。你可以试试这个:
JTextField f = new JTextField();
// your JTextField is being filled somehow with text ...
Document document = f.getDocument();
try {
String text = document.getText(0, document.getLength());
} catch (BadLocationException ex) {
}
也许当您从Document
实例而不是JTextField
实例收集文本时,它不会被转义;
答案 2 :(得分:0)
我知道这对你来说可能有点迟了,但我找到了解决这个问题的简单方法:
JTextfield field = new JTextField();
/*someone puts a string into it*/
escapeFulString = field.getText().replace("\\t","\t");
System.out.println(escapeFulString);
这将打印出包含所有标签的字符串。要添加任何其他转义序列,只需执行相同的过程。 只是不要忘记,java字符串方法不要编辑到位,例如:
text.replace("\\t","\t")
//is not the same as
text = text.replace("\\t","\t");