我想知道是否有一种简单的方法来处理 JTextField 中的转义字符。问题是 getText() 将转义转义字符。当然,大多数时候这将是首选行为,但如果您想让用户自由地为 CSV 文件(包括 \t)提供分隔符,则不是。有任何想法吗?
鲍勃
我想知道是否有一种简单的方法来处理 JTextField 中的转义字符。问题是 getText() 将转义转义字符。当然,大多数时候这将是首选行为,但如果您想让用户自由地为 CSV 文件(包括 \t)提供分隔符,则不是。有任何想法吗?
鲍勃
您始终可以覆盖 Swing 组件中任何和所有公共函数的行为。它被称为“专业化”。例如,您可以创建自己的MyJTextField
类并覆盖该getText()
方法。
JTextField 只是一个视图,所以它里面总是有一个模型,这个模型就是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
实例收集文本时,它不会被转义;
我知道这对你来说可能有点晚了,但我找到了一个简单的解决方案:
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");