我想知道是否有一種簡單的方法來處理JTextField中的轉義字符。事情是,getText()將轉義轉義字符。當然,在大多數情況下,這將是首選行爲,但如果您希望允許用戶爲CSV文件(包括\ t)自由提供分隔符,則不是。有任何想法嗎?JTextfield中的轉義字符
鮑勃
我想知道是否有一種簡單的方法來處理JTextField中的轉義字符。事情是,getText()將轉義轉義字符。當然,在大多數情況下,這將是首選行爲,但如果您希望允許用戶爲CSV文件(包括\ t)自由提供分隔符,則不是。有任何想法嗎?JTextfield中的轉義字符
鮑勃
你總是可以覆蓋Swing組件的任何和所有公共職能的行爲。它被稱爲「專業化」。例如,您可以創建自己的MyJTextField
類並覆蓋getText()
方法。
JTextField只是一個視圖,所以它裏面總是有一個模型,這個模型是Document
類。也許當你從Document
實例,而不是JTextField
情況下它不會被轉義收集文本
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) {
}
;:你可以試試這個
我知道這可能是有點晚了你,但我發現一個簡單的解決這一問題:
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");
放入一個臨時字符串添加另一個\''\\每\''\\存在反轉義它,從而允許\ n在'println()'執行或其他任何內容中顯示。 –