有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JTextfield中的java转义字符

我想知道是否有一种简单的方法来处理JTextField中的转义字符。问题是getText()将转义转义字符。当然,在大多数情况下,这将是首选行为,但如果您希望允许用户自由地为CSV文件(包括\t)提供分隔符,则不会这样做。有什么想法吗

鲍勃


共 (3) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

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

  3. # 3 楼答案

    我知道这对你来说可能有点晚了,但我找到了解决这个问题的简单方法:

    JTextfield field = new JTextField();
    /*someone puts a string into it*/
    escapeFulString = field.getText().replace("\\t","\t");
    System.out.println(escapeFulString);
    

    这将打印出包含所有选项卡的字符串。要添加任何其他转义序列,只需执行相同的过程。 不要在适当的位置编辑字符串,例如:

    text.replace("\\t","\t") 
    //is not the same as
    text = text.replace("\\t","\t");