我有一個JTextField,我想限制爲15個字符。問題是,當我輸入超過15個字符時,它會出錯。我怎樣才能解決這個問題?我必須使用其他對象嗎?DocumentListener出錯
錯誤: 異常在線程 「AWT-EventQueue的 - 0」 java.lang.IllegalStateException:嘗試在通知變異
final int maxNicknameLength = 15;
final JTextField nickname = new JTextField(1); //Max length: 15
DocumentListener docListen = new DocumentListener() {
public void changedUpdate(DocumentEvent e) {
lengthCheck(e, nickname, maxNicknameLength);
}
public void insertUpdate(DocumentEvent e) {
lengthCheck(e, nickname, maxNicknameLength);
}
public void removeUpdate(DocumentEvent e) {
lengthCheck(e, nickname, maxNicknameLength);
}
public void lengthCheck (DocumentEvent e, JTextField txt, int max) {
if (txt.getText().length() > max)
txt.setText(txt.getText().substring(0, max));
}
};
nickname.getDocument().addDocumentListener(docListen);
做了一些工作,但我設法使用該實現。 – Jack 2011-06-15 01:46:29