0

我想知道是否有一种简单的方法来处理 JTextField 中的转义字符。问题是 getText() 将转义转义字符。当然,大多数时候这将是首选行为,但如果您想让用户自由地为 CSV 文件(包括 \t)提供分隔符,则不是。有任何想法吗?

鲍勃

4

3 回答 3

1

您始终可以覆盖 Swing 组件中任何和所有公共函数的行为。它被称为“专业化”。例如,您可以创建自己的MyJTextField类并覆盖该getText()方法。

于 2013-01-24T15:31:01.650 回答
0

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实例收集文本时,它不会被转义;

于 2013-01-24T15:40:37.243 回答
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");
于 2014-03-31T01:12:41.983 回答