2013-03-30 3 views
0

Я использую Utilities.getRowStart, чтобы узнать количество строк в JTextPane. Но это дает BadLocationException, когда я ударил клавишу ввода:BadLocationException при использовании Utilities.getRowStart При нажатии клавиши Enter

javax.swing.text.BadLocationException: позиция не представлен зрения

Любая идея?

int offset = pane.getText().length(); 

while(offset > 0) { 

    try { 

    offset = Utilities.getRowStart(pane, offset) - 1; 

     } catch (BadLocationException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 

    } 
    lineCount++; 
} 
+0

добавить код на свой вопрос –

+0

пожалуйста найти код – user001

+1

На самом деле вам нужно разместить 'SSCCE', чтобы продемонстрировать вашу проблему. Если вы не знаете, что такое «SSCCE», вы можете искать в Интернете. – camickr

ответ

6
int offset = pane.getText().length(); 

Просто думаю, что вы работаете на Windows. Этот код вернет строку, содержащую «\ r \ n» для каждого символа новой строки. Документ использует только «\ n», поэтому ваше смещение будет больше, чем длина документа. Использование:

int offset = pane.getDocument().getLength(); 
+0

Спасибо Камикр. Теперь он отлично работает, и да, я использую окна. – user001

+0

@ user1815809 рассмотрите возможность опроса и принять этот ответ здесь – mKorbel

Смежные вопросы