java 文本框只能输入数字_java swing 怎么设置文本框只能输入数字

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:29   2807   0

展开全部

java swing中利用JFormattedTextField的控件加keyReleased能实现,以下实现的只能输入数字的62616964757a686964616fe58685e5aeb931333337623462文本框代码:import java.text.ParseException;

import javax.swing.JFormattedTextField;

import javax.swing.JFrame;

import javax.swing.JPanel;

/**

*

* @author Administrator

*/

public class JFormattedText extends JFrame {

private JFormattedTextField text;

public JFormattedText() {

JPanel panel = new JPanel();

text = new JFormattedTextField(new java.text.DecimalFormat("#0"));

// text = new JFormattedTextField();

// text.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.NumberFormatter(new java.text.DecimalFormat("#0"))));

text.setFont(new java.awt.Font("宋体", 0, 12)); // NOI18N

text.setMaximumSize(new java.awt.Dimension(50, 21));

text.setMinimumSize(new java.awt.Dimension(50, 21));

text.setPreferredSize(new java.awt.Dimension(50, 21));

//过滤输入的字符

text.addKeyListener(new java.awt.event.KeyAdapter() {

public void keyReleased(java.awt.event.KeyEvent evt) {

String old = text.getText();

JFormattedTextField.AbstractFormatter formatter = text.getFormatter();

if (!old.equals("")) {

if (formatter != null) {

String str = text.getText();

try {

long page = (Long) formatter.stringToValue(str);

text.setText(page + "");

} catch (ParseException pe) {

text.setText("1");//解析异常直接将文本框中值设置为1

}

}

}

}

});

panel.add(text);

this.add(panel);

this.setBounds(200, 100, 100, 100);

}

public static void main(String[] arg) {

new JFormattedText().setVisible(true);

}

}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP