отобразить количество символов в JTextArea - PullRequest
0 голосов
/ 12 января 2012

Я ищу пример для отображения количества символов, которые пользователь уже ввел в Java JTextArea. Я хочу ограничить количество символов (255) в 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

Ответы [ 2 ]

1 голос
/ 12 января 2012

Вы можете использовать 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");
        }
    }
});
1 голос
/ 12 января 2012

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

...