java 输入框设置只能输入正整数
时间: 2023-09-28 21:05:24 浏览: 46
可以使用 Java Swing 中的 JTextField 组件来实现输入框只能输入正整数的功能。具体实现方法如下:
1. 创建 JTextField 对象:
```java
JTextField textField = new JTextField();
```
2. 为 JTextField 对象添加 DocumentListener 监听器:
```java
textField.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
validateInput();
}
@Override
public void removeUpdate(DocumentEvent e) {
validateInput();
}
@Override
public void changedUpdate(DocumentEvent e) {
validateInput();
}
});
```
3. 在 validateInput() 方法中对输入内容进行验证,如果不是正整数则清空输入框:
```java
private void validateInput() {
String text = textField.getText();
if (!text.matches("\\d*")) {
textField.setText("");
}
}
```
完整代码如下:
```java
import javax.swing.*;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class IntegerInputTextField extends JFrame {
public IntegerInputTextField() {
JTextField textField = new JTextField();
textField.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void insertUpdate(DocumentEvent e) {
validateInput();
}
@Override
public void removeUpdate(DocumentEvent e) {
validateInput();
}
@Override
public void changedUpdate(DocumentEvent e) {
validateInput();
}
});
add(textField);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
private void validateInput() {
String text = textField.getText();
if (!text.matches("\\d*")) {
textField.setText("");
}
}
public static void main(String[] args) {
new IntegerInputTextField();
}
}
```