展开全部
java swing中利用JFormattedTextField的控件加keyReleased能实现,以下实现的只能输入数字的62616964757a686964616fe58685e5aeb931333337623462文本框代码:importjava.text.ParseException;
importjavax.swing.JFormattedTextField;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
/**
*
*@authorAdministrator
*/
publicclassJFormattedTextextendsJFrame{
privateJFormattedTextFieldtext;
publicJFormattedText(){
JPanelpanel=newJPanel();
text=newJFormattedTextField(newjava.text.DecimalFormat("#0"));
//text=newJFormattedTextField();
//text.setFormatterFactory(newjavax.swing.text.DefaultFormatterFactory(newjavax.swing.text.NumberFormatter(newjava.text.DecimalFormat("#0"))));
text.setFont(newjava.awt.Font("宋体",0,12));//NOI18N
text.setMaximumSize(newjava.awt.Dimension(50,21));
text.setMinimumSize(newjava.awt.Dimension(50,21));
text.setPreferredSize(newjava.awt.Dimension(50,21));
//过滤输入的字符
text.addKeyListener(newjava.awt.event.KeyAdapter(){
publicvoidkeyReleased(java.awt.event.KeyEventevt){
Stringold=text.getText();
JFormattedTextField.AbstractFormatterformatter=text.getFormatter();
if(!old.equals("")){
if(formatter!=null){
Stringstr=text.getText();
try{
longpage=(Long)formatter.stringToValue(str);
text.setText(page+"");
}catch(ParseExceptionpe){
text.setText("1");//解析异常直接将文本框中值设置为1
}
}
}
}
});
panel.add(text);
this.add(panel);
this.setBounds(200,100,100,100);
}
publicstaticvoidmain(String[]arg){
newJFormattedText().setVisible(true);
}
}