JTextArea:仅限数字

JTextArea: Numbers Only

我正在尝试制作一个计算器程序,我只想允许输入数字,但我不知道该怎么做,请你告诉我怎么做。我没有在别处找到任何东西。这是我的源代码:

import javax.swing.*;
import java.awt.*;

public class Sect1 extends JTextArea{
    public static final Dimension ss = Toolkit.getDefaultToolkit().getScreenSize();

    public Sect1(){
        this.setBounds(ss.width / 4, ss.height / 5, 100, 100);
        this.setLineWrap(true);
        this.setWrapStyleWord(true);
    }
}

如上评论,看看JFormattedTextField, or DocumentFilter 类。这些将允许您(更简单地)控制 jTextField 的输入。

要考虑的另一个选择是创建如下所示的方法:

public static boolean isNumber(String input){
    try{
        Integer.parseInt(input);
    }
    catch(Exception e){
        return false;
    }
    return true;
}

这段代码试图做的就是将输入解析为整数,return 如果它能够做到这一点(因此如果数据是整数)。 使用 eventListener 以 jTextField.getText() 作为输入调用此方法将让您在键入时知道字段中的数据是否为整数。 See this for more on the last part.