JTextField textField = new JTextField();
textField.addCaretListener(new CaretListener() {
public
void
caretUpdate(CaretEvent e) {
JTextField textField = (JTextField) e.getSource();
String text = textField.getText();
if
(text.length() ==
0
) {
return
;
}
char
ch = text.charAt(text.length() -
1
);
if
(!(ch >=
'0'
&& ch <=
'9'
|| ch >=
'A'
&& ch <=
'z'
|| ch >=
'\u4E00'
&& ch <=
'\u9FA5'
)) {
JOptionPane.showMessageDialog(textField,
"只能输入中文,字母,数字"
,
"提示"
, JOptionPane.INFORMATION_MESSAGE);
SwingUtilities.invokeLater(
new
Runnable() {
@Override
public
void
run() {
textField.setText(text.substring(
0
, text.length() -
1
));
}
});
}
}
});