java文本框输入数字_Java 文本框输入数字限制以及输入数字大小限制
问题:
之前我有一篇博文也写了这个问题,也是使用的字符串来控制文本框的输入数字
不过,那篇博文给的方法只能限制数字输入,以及数字输入长度的限制
今天给出可以限制输入数字大小的方法,例如:希望输入的数字最大不能超过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 文本框输入数字限制以及输入数字大小限制相关推荐
- java 文本框只能输入数字_java 24 - 6 GUI之 创建只能输入数字的文本框
需求: 创建一个含有标签和文本框的窗体,其中文本框只能输入数字 步骤:(大致上) 创建窗体对象 创建标签对象 创建文本框对象 把组件添加到窗体中 设置标签的监听事件,对键盘按下的数据进行监听 设置窗体 ...
- java 文本框输入事件_Java文本框上的ActionEvent事件 | 学步园
三个概念:事件源, 监视器, 处理事件的接口 事件源 能够产生事件的对象都可以成为事件源,如文本框.按钮.下拉式列表等. 事件源必须是一个对象,而且这个对象必须是 Java认为能够发生事件的对象. 监 ...
- java文本框选中事件_Java文本框上的ActionEvent事件
三个概念:事件源, 监视器, 处理事件的接口 事件源 能够产生事件的对象都可以成为事件源,如文本框.按钮.下拉式列表等. 事件源必须是一个对象,而且这个对象必须是 Java认为能够发生事件的对象. 监 ...
- java如何找重复数字_Java如何找出数组中重复的数字
题目描述:找出数组中重复的数字,具体内容如下 在一个长度为n的数组里的所有数字都在 0~n-1的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复了几次.请找出数组中任意 ...
- java如何判断字符串里全部为数字_java语言中如何判断字符串是否为数字
[实例描述] 软件运行过程中,经常需要用户输入数值.货币值等信息,然后进行处理.由于用户输入 只能是字符串类型,如果输入了非法的信息,如在货币值中输入了字母"a"以及其他非数字 字 ...
- java标准i o重定向_Java I/O(二)其他常用的输入输出流PrintStream等、标准流重定向...
四.FilterOutputStream.PrintStream PrintStream是继承自FilterStream类的,例如标准输出流System.out就是著名的PrintStream类对象. ...
- java 文本编辑器 源码_java文本编辑器源码
import javax.swing.*; import java.awt.*; import java.io.*; import java.awt.event.*; public class Txt ...
- java 中jtextfield访问限制_java.swing JtextField 中怎么限制只能输入数字
2016-04-05 回答 看代码: import java.awt.borderlayout; import javax.swing.jframe; import javax.swing.jlabe ...
- java 文本的相似度_java – 文本相似度算法
我正在做一个Java项目,我必须做一个文本相似程序.我想要采取2个文本文档,然后将它们相互比较并获得相似之处.他们是如何相似的. 我稍后会放一个已经有数据库的人可以找到这些单词的同义词,并通过文本来查 ...
最新文章
- [CareerCup] 2.4 Partition List 划分链表
- JAVA取质数(素数)算法优化
- codeblocks、wxWidgets环境配置
- 大数据治理需要具备哪些能力和关键技术?
- 每日一学:如何读取网络图片
- mysql数据库作业_mysql数据库操作练习
- OJ1083: 数值统计(多实例测试)(C语言)
- 对一个带小数的数进行四舍五入取整
- S1:动态方法调用:call apply
- LeetCode 542. 01 Matrix
- 让secureCRT正确显示中文
- 在eclipse中使用Github进行单元测试
- 如何在html中写json格式数据类型,html中如何美化展示json格式数据
- STC官网首页资源整理
- Mysql获取流水号
- Greenplum数据库故障分析——UDP Packet Lost(packet reassembles failed)
- 我一直在维护的石墨文档开源了
- 还在用ES查日志吗,快看看石墨文档 Clickhouse 日志架构玩法
- 微信分享网页 图标不显示
- android卡通头像,Q版卡通头像设计
热门文章
- 蓝桥杯练习算法题(矩形切割成正方形)
- 再见了, 上海!我的程序生涯!
- 城乡规划编制单位资质开通申请
- 前端-js网页特效(一)倒计时效果及原理
- 如何找课题的综述文献
- 【前端篇】火狐浏览器打开调试器,报“Error: Incorrect contents fetched, please reload.”
- [java]如何在项目中用好log4J写项目日志
- C#基于联通短信Sgip协议构建短信网关程序.net
- 所谓计算机网络是指利用通信设备,《计算机应用基础》模拟试卷考卷二含答案...
- Abaqus二次开发捕获几何元素方法归纳