我正在寻找一个示例来显示用户已经在Java JTextArea中输入的字符数。我想在JTextArea中有一个限制字符数(255)。
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);
}
我使用Java教程中的DocumentSizeFilter。但是,我希望在此对话框中有一个文本标签,以便用户可以看到在JTextArea中输入了多少个字符
答案 0 :(得分:1)
您可以附加监听器(收听TextEven
或DocumentEvent
),当文本太长时,您会向用户发送警告。
答案 1 :(得分:1)
您可以使用DocumentListener侦听textarea的更改:
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");
}
}
});