java保存数字_Java:JFormattedTextField保存数字
即使JFormattedTextField实现DecimalFormat和NumberFormat ,也会使用DocumentListener ,
1)通过使用DecimalFormat或NumberFormat简单的User-non-Acceptable通过实现setMinimum()和setMaximum()
2) JTextComponents在默认情况下实现插入文本,然后通过实现setMinimum()和setMaximum()来实现具有DecimalFormat或NumberFormat的JFormattedTextField User-non-Acceptable的任何解决方法。
3)它非常舒适的使用DocumentListener允许添加任何数量,但突出显示范围
4)或与SpinnerNumberModel使用JSpinner ,可以将Formatter设置为Number Instance
例如将InternationalFormatter和DocumentListener结合在一起
import java.awt.*; import java.awt.font.TextAttribute; import java.math.*; import java.text.*; import java.util.Map; import javax.swing.*; import javax.swing.JFormattedTextField.*; import javax.swing.event.*; import javax.swing.text.InternationalFormatter; public class DocumentListenerAdapter { public static void main(String args[]) { JFrame frame = new JFrame("AbstractTextField Test"); final JFormattedTextField textField1 = new JFormattedTextField(new Float(10.01)); textField1.setFormatterFactory(new AbstractFormatterFactory() { @Override public AbstractFormatter getFormatter(JFormattedTextField tf) { NumberFormat format = DecimalFormat.getInstance(); format.setMinimumFractionDigits(2); format.setMaximumFractionDigits(2); format.setRoundingMode(RoundingMode.HALF_UP); InternationalFormatter formatter = new InternationalFormatter(format); formatter.setAllowsInvalid(false); formatter.setMinimum(0.0); formatter.setMaximum(1000.00); return formatter; } }); final Map attributes = (new Font("Serif", Font.BOLD, 16)).getAttributes(); attributes.put(TextAttribute.STRIKETHROUGH, TextAttribute.STRIKETHROUGH_ON); final JFormattedTextField textField2 = new JFormattedTextField(new Float(10.01)); textField2.setFormatterFactory(new AbstractFormatterFactory() { @Override public AbstractFormatter getFormatter(JFormattedTextField tf) { NumberFormat format = DecimalFormat.getInstance(); format.setMinimumFractionDigits(2); format.setMaximumFractionDigits(2); format.setRoundingMode(RoundingMode.HALF_UP); InternationalFormatter formatter = new InternationalFormatter(format); formatter.setAllowsInvalid(false); //formatter.setMinimum(0.0); //formatter.setMaximum(1000.00); return formatter; } }); textField2.getDocument().addDocumentListener(new DocumentListener() { @Override public void changedUpdate(DocumentEvent documentEvent) { printIt(documentEvent); } @Override public void insertUpdate(DocumentEvent documentEvent) { printIt(documentEvent); } @Override public void removeUpdate(DocumentEvent documentEvent) { printIt(documentEvent); } private void printIt(DocumentEvent documentEvent) { DocumentEvent.EventType type = documentEvent.getType(); double t1a1 = (((Number) textField2.getValue()).doubleValue()); if (t1a1 > 1000) { Runnable doRun = new Runnable() { @Override public void run() { textField2.setFont(new Font(attributes)); textField2.setForeground(Color.red); } }; SwingUtilities.invokeLater(doRun); } else { Runnable doRun = new Runnable() { @Override public void run() { textField2.setFont(new Font("Serif", Font.BOLD, 16)); textField2.setForeground(Color.black); } }; SwingUtilities.invokeLater(doRun); } } }); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(textField1, BorderLayout.NORTH); frame.add(textField2, BorderLayout.SOUTH); frame.setVisible(true); frame.pack(); } private DocumentListenerAdapter() { } }
java保存数字_Java:JFormattedTextField保存数字相关推荐
- java整数翻转_Java程序反转数字
Java程序反转数字 在此程序中,您将学习在Java中使用while循环和for循环来反转数字. 示例:在Java中使用while循环反转数字 public class ReverseNumber { ...
- java金字塔显示_java控制台输出数字金字塔示例分享
/*Java *Author: NealFeng at oschina.net *License: GPLv2+ *Time: 2014/1/17 * *在控制台输出数字金字塔: * ...
- java怎么系统输入数字_java怎么输入数字,这些经验不可多得
相对于其它语言的输入输出,Java的显得有点繁琐了,这一点对于初学java的朋友尤为明显.那么这里分享下Java输入数字的方法. 工具/材料 eclipse 操作方法 01 java的Scanner类 ...
- java 时间 转化成数字_java时间转化数字
1 写出下面代码输出内容. package main import ( "fmt" ) funcmain() { defer_call() } funcdefer_c ...
- java 保存 设置_java的保存按钮怎么设置?
java的保存按钮怎么设置? 关注:291 答案:2 mip版 解决时间 2021-01-30 12:03 提问者我不想放过你 2021-01-29 13:34 不要用java.swing中的类 ...
- java 获得唯一 数字_java生成唯一数字
java生成唯一数字 用UUID类生成唯一标识的时候,会生成一个十六进制的整数,但是不能作为数据库long型字段的唯一标识,用下面的办法可以实现数据库long型标识的生成: public class ...
- java 液晶屏数字_java实现液晶数字字体显示当前时间
本文实例为大家分享了java实现液晶数字字体显示当前时间的具体代码,供大家参考,具体内容如下 import java.text.SimpleDateFormat; import java.util.D ...
- java字符转数字_Java字符串和数字间的转换
title: Java字符串和数字间的转换 date: 2016-04-23 23:06:50 categories: Java tags: Java 一.字符串转数字 1.通过基本类型对应的包装类则 ...
- java打印一些数字_java – 如何打印数字模式
所以我完成了这个任务: (显示模式)编写一种方法来显示模式,如下所示: 方法标题是: public static void displayPattern(int n) 基本上,我理解"如何& ...
- java split 数字_java 怎样分割数字和汉字
展开全部 用正则表达式来实现:import java.util.regex.Matcher; import java.util.regex.Pattern; public class BB { pub ...
最新文章
- 操作系统安全加固的作用
- ajax通讯原理,ajax通讯原理以及自己封装一个ajax函数
- <关于并发框架>Java原生线程池原理及Guava与之的补充
- JavaScript的DOM操作-重点部分-第一部分
- 利用MATLAB求数列的和与连乘
- 对拉格朗日乘子法与KKT的理解
- 科研实习 | 北京大学计算机系林亦波老师芯片设计软件组招收实习生
- javascript数据结构-栈
- Swift 的函数和闭包
- centos6.5卸载java,CentOS 5.2卸载自带Java1.4.2 安装JDK6
- Java生成.jar库
- python安装scrapy教程_Python实用工具包Scrapy安装教程
- WPF中监听剪贴板存在的Bug:OpenClipboard HRESULT:0x800401D0 (CLIPBRD_E_CANT_OPEN))错误
- linux系统苹果刷机,iPhone上安装Android系统详细步骤
- 仿写京东登录页面HTML/CSS
- 输出今天日期,以yyyy-mm-dd方式输出
- charles问题?chls.pro/ssl证书安装后还是出现unknown问题?
- HEGERLS供应定做层板仓储货架 防腐防锈库房立体层板货架
- UEFI开发与调试--edk2中的基础组件
- JS_强制类型转换_Number
热门文章
- frpfile官方最新绕id工具_【IPFS动态】IPFS官方周报第104期:Chromium增加了对IPFS的支持!...
- 启明智显分享| 2.4寸旋钮串口屏在健身器材上的应用
- Android防火墙原型系统设计,Android系统网络安全性研究及防火墙设计
- js 实现2的n次方计算函数_「计算机组成原理」:一文快速了解计算机原理知识点-附思维导图...
- 鸿蒙可以安装荣耀play,荣耀play3是鸿蒙系统吗
- require与include+php,PHP中include与require有什么区别
- python如何爬虫股票数据_简单爬虫:东方财富网股票数据爬取(python_017)
- 《转》探讨:3D透视投影变换详解-兼谈视平面和屏幕的宽高比问题
- 007-流程控制 if 语句
- CocosCreator内置函数实现物体拖动