2012-01-12 2 views
-2

Я ищу пример для отображения количества символов, которые пользователь уже ввел в Java JTextArea. Я хочу иметь предельное число символов (255) в JTextArea.отображает количество символов в JTextArea

JTextArea kommentarArea = new JTextArea(11, 10); 
kommentarArea.setLineWrap(true); 
kommentarArea.setWrapStyleWord(true); 

AbstractDocument pDoc = (AbstractDocument) kommentarArea.getDocument(); 
pDoc.setDocumentFilter(new DocumentSizeFilter(MAXCOMMENTCHARS)); 
int option = JOptionPane.showOptionDialog(null, kommentarArea, "Bitte geben Sie einen Kommentar ein", JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE, imexIcon, null, null); 
if (option == JOptionPane.YES_OPTION && kommentarArea.getDocument().getLength() <= MAXCOMMENTCHARS) 
    return kommentarArea.getText(); 
else if (kommentarArea.getDocument().getLength() > MAXCOMMENTCHARS) { 
    throw new CommentTooLongException("Die Länge der Kommentare ist länger als 255 Zeichern"); 
} else { 
    LOGGER.info("Versenden der Datei wurde abbrechen"); 
    System.exit(0); 
} 

Я использую DocumentSizeFilter из учебника Java. Тем не менее, я хочу иметь текстовую метку в этом диалоговом окне, чтобы пользователь мог видеть, сколько символов было введено в JTextArea

+0

Что вы пробовали уже, что именно не работает, как ожидалось? Дайте нам код, который вы уже написали, или просто хотите, чтобы кто-то разработал для вас решение? – FrankS

ответ

1

Вы можете подключить прослушиватель (прослушать TextEven или DocumentEvent), а когда текст слишком длинный, вы отправляете предупреждение пользователю.

1

Вы можете использовать DocumentListener для прослушивания изменений в текстовое поле:

kommentarArea.getDocument().addDocumentListener(new DocumentListener { 
    public void insertUpdate(DocumentEvent event) { 
     if (kommentarArea.getDocument().getLength() > 255) { 
      JOptionPane.showMessageDialog(null, "Die Länge der Kommentare ist länger als 255 Zeichern"); 
     } 
    } 

    public void removeUpdate(DocumentEvent e) { 
     if (kommentarArea.getDocument().getLength() > 255) { 
      JOptionPane.showMessageDialog(null, "Die Länge der Kommentare ist länger als 255 Zeichern"); 
     } 
    } 

    public void changeUpdate(DocumentEvent event) { 
     if (kommentarArea.getDocument().getLength() > 255) { 
      JOptionPane.showMessageDialog(null, "Die Länge der Kommentare ist länger als 255 Zeichern"); 
     } 
    } 
}); 
Смежные вопросы