使用JEditorPane,有什麼方法可以判斷插入符號是否在最後一行?我無法在API或更重要的JEditorPane派生的JTextComponent中找到任何東西。當用戶使用向下箭頭鍵向下移動文本時,我需要找出這一點。我現在的想法是這樣的:JEditorPane是最後一行
private boolean isEndOfText() {
int tmpCurrent = editor.getCaretPosition();
editor.getActionMap().get(DefaultEditorKit.endLineAction).actionPerformed(null);
int tmpEnd = editor.getCaretPosition();
try { editor.setCaretPosition(tmpEnd + 1); } catch (Exception e) { editor.setCaretPosition(tmpCurrent); return true; }
editor.setCaretPosition(tmpCurrent);
return false;
}
每次按下向下鍵此代碼將運行,並且如果如果光標被放在發生錯誤時將返回它是否實際上是在文本的末尾,通過檢測在最後一個可能的位置之後(如果它實際上是最後一行),否則它意味着文本的末尾還沒有達到。
那麼窗格仍然只使用直接文本,但語法突出顯示,所以我不相信HTML會遇到我的問題,無論如何。 – 2010-11-09 11:33:01
我的觀點是HTML文檔充滿HTML標籤。所以如果你使用editor.getText(),而不是editor.getDocument()。getText()我相信你會得到兩個不同的字符串,一個只包含文本,另一個將包含所有的標籤。所以你需要小心你如何比較偏移量。我更喜歡使用帶屬性的JTextPane來設置文本風格,然後文本字符串是相同的,因爲屬性不是文檔的一部分。無論如何,我的建議是否有助於解決問題? – camickr 2010-11-09 16:15:05
充其量只是如此。雖然我喜歡看到其他人如何解決同樣的問題,但我已經有了一個當前的在線檢測系統,方法是檢查使用箭頭鍵以及刪除,輸入和退格。我還有一個系統,可以保持比所給方法更高效的線路數量。 我想我的答案實際上來自我自己做更多的編碼,這反過來會增加更多的功能,我可以稍後使用它來使現有的功能更有效。有沒有一個術語?無論如何感謝您的答案。 – 2010-11-09 23:22:14