2010-05-28 38 views
2

這是一個具有挑戰性的問題!如何獲取JTextArea中的選定字符位置?

讓我先告訴你我的情景如何實施問題的解決方案。

我正在讀取日誌文件並在JTextArea上顯示它。日誌文件是cp037字符編碼。我正在從顯示它的日誌文件&中讀取每個文件作爲字節流或字節數組。無論如何,我設法通過cp037字符編碼在JTextArea中正確顯示文本。

現在,用戶可以在JTextArea中選擇一組字符。我想要的只是用戶所選文本的第一個字符的位置,它來自最近的特殊字符'+'(cp037中的字符代碼是4E),它位於所選文本之前。這個字符可能出現在JTextArea的幾個地方。

在簡單的句子中,我想從用戶選擇的文本之前應該出現的nearset'+'的第一個字符位置(用戶選擇的文本的位置)。

PS:cp037是一種字符編碼方案,由IBM &用於IBM大型機創建。

請下跌免費問我,如果這個問題不明確... - >

回答

3

JTextComponent有一個方法

public int getSelectionStart() 

返回選定文本的起始位置。對於空白文檔返回0,如果沒有選擇,則返回點的值。

public String getSelectedText() 

返回包含在此TextComponent中的選定文本。如果選擇爲空或文檔爲空,則返回null。

2

兩種方法getSelectionEnd()JTextComponentgetSelectionStart()會幫助你。

String firstSelectedChar; 
String text = textArea.getText(); 
int selectionStart = textArea.getSelectionStart(); 
firstSelectedChar = text.substring(selectionStart, selectionStart + 1); 

這可能與您需要的類似。

相關問題