问题:

之前我有一篇博文也写了这个问题,也是使用的字符串来控制文本框的输入数字

不过,那篇博文给的方法只能限制数字输入,以及数字输入长度的限制

今天给出可以限制输入数字大小的方法,例如:希望输入的数字最大不能超过35,那么36是绝对输入不进去的

而且,其他字符也是不能输入进去的

有兴趣的可以自己改成浮点数的输入大小限制(转载请说明来源:http://blog.csdn.net/Kilper)

代码:

package Test.csdn;

import java.awt.GridLayout;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JTextField;

/**

*

* @ClassName NumLimit

* @Description 通过字符串来控制JTextField输入数字以及数字大小的示例

* 只能控制正整数的输入(没有包括0,因为设置了第一位不能输入0,如有需要可以自己更改)

* 如果有什么疑问请到作者博客留言或评论,博客地址在下面一行

* 有兴趣的可以改成浮点数的输入大小限制,Kilper就不再写浮点数的示例了

* @author Kilper http://blog.csdn.net/Kilper

* @date 2010-8-24 下午05:08:40

*

*/

public class NumLimit extends JFrame {

/**

* @Fields serialVersionUID : TODO

*/

private static final long serialVersionUID = 1133553442569412104L;

private static JTextField limit;

private static JTextField input;

public NumLimit(String title) {

super(title);

this.setSize(400, 100);

this.add(buildTestPanel()); // 加载面板到窗体中

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 关闭按钮的事件响应

this.setLocationRelativeTo(null); // 窗体位置居中

}

/**

*

* @Title buildTestPanel

* @author Kilper http://blog.csdn.net/Kilper

* @Description: 获得构建好的JPanel面板

* @return JPanel

*/

private JPanel buildTestPanel() {

JPanel panel = new JPanel();

limit = new JTextField();

input = new JTextField();

panel.setLayout(new GridLayout(0, 2));

panel.add(new JLabel("数字输入限制设置限制框:"));

panel.add(limit);

panel.add(new JLabel("数字输入限制验证输入框:"));

panel.add(input);

// 为设置限制框也添加数字输入和大小限制

limit.addKeyListener(new KeyAdapter() {

public void keyTyped(KeyEvent e) {

String key = limit.getText();

String value = getLimit(key, 99999); // 该框只能输入最大99999的数字

if (value.indexOf(e.getKeyChar()) < 0)

e.consume();

}

});

input.addKeyListener(new KeyAdapter() {

public void keyTyped(KeyEvent e) {

String key = input.getText();

int count = Integer.valueOf(limit.getText().trim());

// 示例讲解:key = "13" count = 135

String value = getLimit(key, count);

// 示例讲解:返回的字符串使得value = "012345";

if (value.indexOf(e.getKeyChar()) < 0) // 如果输入6,则销毁该输入

// 输入字符,则销毁该输入

e.consume(); // 销毁输入

// 如果输入0-5之间,则不做处理,输入的数字会显示在屏幕中

}

});

return panel;

}

/**

*

* @Title getLimit

* @author Kilper http://blog.csdn.net/Kilper

* @Description: 获得限制字符串

* @return String

*/

private String getLimit(String key, int num) {

// 示例讲解:key = "13" count = 135

String value = String.valueOf(num); // value = "135";

int a[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, b = num;

// b = 135,a[] = {0,……};

int len = key.length(), length = value.length();

// len = 2,length = 3;

for (int i = 0; b > 0; i++, b /= 10)

a[length - 1 - i] = b % 10;

// a[] = {1,3,5,0,……};

int in;

if (key.equals(""))

in = 0;

else

in = Integer.valueOf(key) * 10;

// in = 130;

if (len < length - 1) {

if (len == 0)

value = string(1, 9); // 限制第一位不能输入0

else

value = string(0, 9);

} else if (len == length - 1) {

// 进入这里 in = 130 < num = 135

if (in <= num)

if (in == 0)

value = string(1, a[len]);

else

value = string(0, a[len]); // 所以:value = "012345";

else

value = "";

} else {

value = "";

}

// 返回的字符串为:"0123456"

return value;

}

/**

*

* @Title string

* @author Kilper http://blog.csdn.net/Kilper

* @Description: 获得从a开始,到b结束的字符串,例如:a=2,b=6,则返回:"23456"

* @return String

*/

private static String string(int a, int b) {

String value = "";

for (int i = a; i <= b; i++)

value += String.valueOf(i);

return value;

}

public static void main(String[] args) {

NumLimit test = new NumLimit("数字输入和大小测试"); // 新建NumLimit实例

test.setVisible(true);

}

}

java文本框输入数字_Java 文本框输入数字限制以及输入数字大小限制相关推荐

  1. java 文本框只能输入数字_java 24 - 6 GUI之 创建只能输入数字的文本框

    需求: 创建一个含有标签和文本框的窗体,其中文本框只能输入数字 步骤:(大致上) 创建窗体对象 创建标签对象 创建文本框对象 把组件添加到窗体中 设置标签的监听事件,对键盘按下的数据进行监听 设置窗体 ...

  2. java 文本框输入事件_Java文本框上的ActionEvent事件 | 学步园

    三个概念:事件源, 监视器, 处理事件的接口 事件源 能够产生事件的对象都可以成为事件源,如文本框.按钮.下拉式列表等. 事件源必须是一个对象,而且这个对象必须是 Java认为能够发生事件的对象. 监 ...

  3. java文本框选中事件_Java文本框上的ActionEvent事件

    三个概念:事件源, 监视器, 处理事件的接口 事件源 能够产生事件的对象都可以成为事件源,如文本框.按钮.下拉式列表等. 事件源必须是一个对象,而且这个对象必须是 Java认为能够发生事件的对象. 监 ...

  4. java如何找重复数字_Java如何找出数组中重复的数字

    题目描述:找出数组中重复的数字,具体内容如下 在一个长度为n的数组里的所有数字都在 0~n-1的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复了几次.请找出数组中任意 ...

  5. java如何判断字符串里全部为数字_java语言中如何判断字符串是否为数字

    [实例描述] 软件运行过程中,经常需要用户输入数值.货币值等信息,然后进行处理.由于用户输入 只能是字符串类型,如果输入了非法的信息,如在货币值中输入了字母"a"以及其他非数字 字 ...

  6. java标准i o重定向_Java I/O(二)其他常用的输入输出流PrintStream等、标准流重定向...

    四.FilterOutputStream.PrintStream PrintStream是继承自FilterStream类的,例如标准输出流System.out就是著名的PrintStream类对象. ...

  7. java 文本编辑器 源码_java文本编辑器源码

    import javax.swing.*; import java.awt.*; import java.io.*; import java.awt.event.*; public class Txt ...

  8. java 中jtextfield访问限制_java.swing JtextField 中怎么限制只能输入数字

    2016-04-05 回答 看代码: import java.awt.borderlayout; import javax.swing.jframe; import javax.swing.jlabe ...

  9. java 文本的相似度_java – 文本相似度算法

    我正在做一个Java项目,我必须做一个文本相似程序.我想要采取2个文本文档,然后将它们相互比较并获得相似之处.他们是如何相似的. 我稍后会放一个已经有数据库的人可以找到这些单词的同义词,并通过文本来查 ...

最新文章

  1. [CareerCup] 2.4 Partition List 划分链表
  2. JAVA取质数(素数)算法优化
  3. codeblocks、wxWidgets环境配置
  4. 大数据治理需要具备哪些能力和关键技术?
  5. 每日一学:如何读取网络图片
  6. mysql数据库作业_mysql数据库操作练习
  7. OJ1083: 数值统计(多实例测试)(C语言)
  8. 对一个带小数的数进行四舍五入取整
  9. S1:动态方法调用:call apply
  10. LeetCode 542. 01 Matrix
  11. 让secureCRT正确显示中文
  12. 在eclipse中使用Github进行单元测试
  13. 如何在html中写json格式数据类型,html中如何美化展示json格式数据
  14. STC官网首页资源整理
  15. Mysql获取流水号
  16. Greenplum数据库故障分析——UDP Packet Lost(packet reassembles failed)
  17. 我一直在维护的石墨文档开源了
  18. 还在用ES查日志吗,快看看石墨文档 Clickhouse 日志架构玩法
  19. 微信分享网页 图标不显示
  20. android卡通头像,Q版卡通头像设计

热门文章

  1. 蓝桥杯练习算法题(矩形切割成正方形)
  2. 再见了, 上海!我的程序生涯!
  3. 城乡规划编制单位资质开通申请
  4. 前端-js网页特效(一)倒计时效果及原理
  5. 如何找课题的综述文献
  6. 【前端篇】火狐浏览器打开调试器,报“Error: Incorrect contents fetched, please reload.”
  7. [java]如何在项目中用好log4J写项目日志
  8. C#基于联通短信Sgip协议构建短信网关程序.net
  9. 所谓计算机网络是指利用通信设备,《计算机应用基础》模拟试卷考卷二含答案...
  10. Abaqus二次开发捕获几何元素方法归纳