当前位置: 首页 > 知识库问答 >
问题:

JTextArea:仅限数字

江子石
2023-03-14

我想做一个计算器程序,我只允许输入数字,但我不知道怎么做,你能告诉我怎么做吗。我在别处什么也没找到。以下是我的源代码:

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);
    }
}

共有1个答案

仉洲
2023-03-14

如上所述,请查看JFormattedTextField或DocumentFilter类。这将允许您(更简单地)控制jTextField的输入。

另一个需要考虑的方法是创建如下方法:

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

这段代码所要做的就是将输入解析为一个整数,并返回它是否能够做到这一点(因此,如果数据是一个整数)。使用jTextField调用此方法。getText()作为输入,使用eventListener可以让您在键入时知道字段中的数据是否为整数。更多关于最后一部分的信息,请参见本文。

 类似资料:
  • 我正在尝试为一个服务制作一个GUI,它有一个JTextArea来查看消息,每条消息都写在一行上,如果需要的话还会进行文字包装。 消息通过一个套接字到达,所以我只使用一个.append(消息)来更新JTextArea,我需要将这些行限制为50或100,我不需要限制每行的字符数。 编辑 问题是每个客户端可以发送无限行,所有这些行都必须是可读的,所以这不是简单地检查JTextArea中的行数。我需要删除

  • null 我有一个PlainDocument,它根据字符串的像素宽度限制单行文本的长度,以大写Ws(我字体中最宽的字符)度量:

  • 问题内容: 我有一个JTextArea,它只需要接受数字。这是我的代码: 对正数有效,但对负数无效。我该如何解决? 编辑:抱歉,在Internet上找到了AxisJTextFilter,而我忘记了这一点。它的代码是: 问题答案: 尝试修改正则表达式(int验证方法containsOnlyNumbers)。 这将接受以下数字: 1234 -1234 +1234 1234.1234 希望对您有所帮助

  • 我试图用Jtextarea做一个聊天盒。它将在0处插入新的文本行,以便在textarea的顶部逐行添加文本。 我将用换行符分隔每一行,并在适当的位置换行,但我无法找到一种方法来限制一次可见的消息数量。因此,如果我设置了100个限制,我将如何使它不能超过100个可见的消息?我希望文本自动擦除最后一行并插入新的一行。 仅供参考,getFrame().getGameGui().getChat(0)用于检

  • 介绍 (Introduction) JTextArea类是一个显示纯文本的多行区域。 Class 声明 (Class Declaration) 以下是javax.swing.JTextArea类的声明 - public class JTextArea extends JTextComponent 类构造函数 (Class Constructors) Sr.No. 构造函数和描述 1 JTe

  • 以下是仅限于 Windows 系统的技巧。 在 Winodws 下获取 Unix 工具 可以安装 Cygwin 允许你在 Microsoft Windows 中体验 Unix shell 的威力。这样的话,本文中介绍的大多数内容都将适用。 在 Windows 10 上,你可以使用 Bash on Ubuntu on Windows,它提供了一个熟悉的 Bash 环境,包含了不少 Unix 命令行工