首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在JFormattedTextField中输入日期后,自定义掩码消失

是因为JFormattedTextField默认使用了SimpleDateFormat作为日期格式化器,而SimpleDateFormat的解析规则与自定义掩码不一致,导致自定义掩码无法生效。

要解决这个问题,可以通过自定义日期格式化器来实现。以下是一个完善且全面的答案:

JFormattedTextField是Swing库中的一个文本输入框组件,它允许用户输入格式化的文本。在输入日期时,可以使用自定义掩码来限制用户输入的格式,例如"yyyy-MM-dd"。

然而,当使用JFormattedTextField输入日期后,自定义掩码可能会消失。这是因为JFormattedTextField默认使用SimpleDateFormat作为日期格式化器,而SimpleDateFormat的解析规则与自定义掩码不一致,导致自定义掩码无法生效。

为了解决这个问题,我们可以通过自定义日期格式化器来实现。首先,我们需要创建一个继承自AbstractFormatter的类,重写其中的方法来实现自定义的日期格式化和解析逻辑。以下是一个示例:

代码语言:txt
复制
import javax.swing.*;
import javax.swing.text.*;
import java.text.*;

public class CustomDateFormatter extends AbstractFormatter {
    private SimpleDateFormat dateFormatter;

    public CustomDateFormatter(String pattern) {
        dateFormatter = new SimpleDateFormat(pattern);
    }

    @Override
    public Object stringToValue(String text) throws ParseException {
        return dateFormatter.parseObject(text);
    }

    @Override
    public String valueToString(Object value) throws ParseException {
        if (value instanceof java.util.Date) {
            return dateFormatter.format((java.util.Date) value);
        }
        throw new ParseException("Invalid type", 0);
    }
}

在上面的代码中,我们创建了一个CustomDateFormatter类,它接受一个日期格式的模式作为参数,并使用SimpleDateFormat来进行日期格式化和解析。

接下来,我们可以在使用JFormattedTextField时,将自定义的日期格式化器应用到文本框中。以下是一个示例:

代码语言:txt
复制
import javax.swing.*;
import java.awt.*;
import java.text.ParseException;

public class MainFrame extends JFrame {
    public MainFrame() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(300, 200);
        setLocationRelativeTo(null);

        JFormattedTextField textField = new JFormattedTextField(new CustomDateFormatter("yyyy-MM-dd"));
        textField.setColumns(10);

        getContentPane().setLayout(new FlowLayout());
        getContentPane().add(textField);

        setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> new MainFrame());
    }
}

在上面的代码中,我们创建了一个MainFrame类,它继承自JFrame,并在其中创建了一个JFormattedTextField,并将自定义的日期格式化器应用到文本框中。

通过以上的代码,我们可以实现在JFormattedTextField中输入日期后,自定义掩码不会消失,并且能够按照指定的格式进行日期的格式化和解析。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网平台:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发:https://cloud.tencent.com/product/mobile
  • 腾讯云区块链服务:https://cloud.tencent.com/product/tbaas
  • 腾讯云元宇宙:https://cloud.tencent.com/product/metaverse

请注意,以上链接仅供参考,具体的产品选择应根据实际需求和情况进行评估和决策。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Vue 创建自定义输入

特别地,表单输入往往会有很多复杂性,我们希望把这些复杂性都隐藏在组件,例如 自定义设计 、标签、验证、帮助消息等等,并且我们还要确保这些部分的每一个都按正确的顺序排列渲染。...可悲的是,当我 Vue 查看单选按钮或复选框的自定义输入的示例时,他们根本没有考虑 v-model ,或者没有正确的使用。...了解 v-model 如何在原生输入上工作,主要侧重于单选框和复选框 默认情况下,了解 v-model 自定义组件上的工作原理 了解如何创建自定义复选框和单选,以模拟原生 v-model 的工作原理...这意味着每次输入完成的 varName 将被更新为输入的值,然后输入的值被设置为 varName 。 正常的 select 元素也会像这样,尽管 multiple 多项选择有所不同。...它实际上的工作方式与文本输入情况下完全相同,只是事件处理程序,它不会将事件对象传递给它,而是希望将值直接传递给它。

6.3K20

java Swing用户界面组件文本输入:文本域+密码域+格式化的输入

最终,JDK 1.4,Swing设计者面对问题,提供了一个多功能的JFormattedTextField类,这个类不仅可以用于输入数值,也可以用于输入时间和更加复杂的格式化数值,如IP地址。...同时也要注意^符号的位置掩码跳过了固定字符。 掩码格式器对于固定格式(比如社会保险号和美国电话号码)非常有效。然而,也要注意 到掩码格式下不允许有任何不一致的地方。...例如,国际电话号码就不能使用掩码格式器,因 为各个国家的电话号码可能有不同的位数。 6. 自定义格式器 如果所有的标准格式器都不适用,就需要定义自己的格式器,做这件事情很容易。...同时,还希望格式器检查每个字节的最大值为255。 为了自定义格式器,扩展DefaultFormatter类并且覆盖其中的方法。...如果文本超出了文本区可以显示的范围,滚动条就会自动出现,并且删除部分文本,当文本能够显示文本区范围内时,滚动条会再次消失。滚动是由滚动窗格内部处理的,编写程序时无需处理滚动事件。

4K10

elementUiinput输入字符光标输入一个字符,光标失去焦点

bug描述:elementUiinput输入字符光标输入一个字符,光标就退出,无法输入需要再次聚焦然后输入一个字符又再次退出。        ...首先,用elementUi正常用v-model绑定输入的值是不会造成光标退出的,原因是用了局部作用域插槽并且table的外层包了一层表单,导致光标输入,table下的数据刷新,导致table重绘,光标失去焦点...,首先声明不建议大家这样写代码,如果要要增加一个table的表单校验功能,建议大家把el-form表单放入table内的作用域插槽,这样更加容易理解,好了,先说下如图这种代码的解决方案,我最后也是用这种方案解决的...解决办法是table绑定一个初始化的模拟数据,,插槽内绑定页面渲染的数据,当输入框数据变化时,table绑定的数据并没有发生变化,不会导致table重绘,页面也可正常校验

3.6K30

Access数据库表字段属性(一)

那么为了减少输入工作量和错误,就可以通过输入掩码来提供一个模板。 设计视图中,选择学号字段,输入掩码位置输入"AA"0000。(其中" "表示逐字显示双引号的字符,0表示必须输入一个数字。...(即是0占位符的作用:必须输入0到9的一个数字。)符合要求才能保存。 ? 通过上述示例来说明,输入掩码属性其实就是通过占位符和字面字符来组合成一个需要的模板。...输入掩码还有一个例外的用法,是可以用于保存密码,字段属性设置输入掩码栏中直接输入“密码”,保存,在数据表视图输入的数据就用*演示,如下图所示: ?...理解字符代表的意义和如何使用方法,就可以根据需要来任意来进行组合使用。 二、 格 式 格式属性是控制显示和打印数据格式、选项预定义格式或输入自定义格式。...yyyy:完整的年份(0100到9999) 下图示例显示格式我们按照月份和日期来显示,格式输入mm年dd日,然后保存。

5K20

【愚公系列】2023年11月 Winform控件专题 MaskedTextBox控件详解

例如,您可以使用它来限制日期输入的格式或电话号码的格式等。MaskedTextBox控件有一个Mask属性,该属性您可以设置输入限制。...例如,当掩码输入为手机号码时,如果设置HidePromptOnLeave属性为true,用户输入完11位手机号码,离开控件时,该控件只会显示输入的11位数字,并且掩码提示字符将不再显示。...以下是一些使用MaskedTextBox控件的示例:1.日期格式MaskedTextBox控件可以使用日期格式掩码,例如 "00/00/0000",它可以强制用户输入日期时保持一定的格式。...DateTime 类型,如果可以成功转换,则弹出消息框显示转换日期,否则提示用户输入有效的日期。...最后,运行程序,输入一个有效的日期(比如 01/01/2021),点击提交按钮,即可看到转换日期信息。

59811

C# WPF Dev控件之正则验证介绍

例如,文本编辑器应该接受24小时格式的日期/时间值或数字值。另一个例子是在编辑器输入电话号码(最终用户只需输入数字,而在编辑时应自动跳过连字符)。使用屏蔽输入来支持这些和许多其他数据输入格式。...03—设计时增强功能 Design-Time Enhancements 屏蔽编辑器允许您在设计时快速创建和自定义任何复杂的屏蔽功能。 04—其它 掩码的空值输入 设置BaseEdit。...AllowNullInput属性设置为true,以允许相应数据字段没有可用信息的情况下,屏蔽编辑器输入空值。要完成此操作,请按CTRL-D或CTRL-0。...包含掩码字符 使用简单或常规掩码类型时,可以指定编辑器的值是否包含持续显示的掩码字符(文字)。换句话说,您可以控制这些字符是否出现在BaseEdit返回的值。是否编辑属性值。...当最终用户空编辑框输入“M”字符时,第二个占位符将自动填充“a”字符,因为有两个月以“M”开头(三月和五月),并且第二个位置都包含“a”。

1.9K40

python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例

下表列出了输入掩码的占位符和字面字符,并说明其如何控制数据输入 字符 含义 A ASCII字母字符是必须输入的(A-Z,a-z) a ASCII字母字符是允许输入的,但不是必须输入的 N ASCII字母字符是必须输入的...('HH:HH:HH:HH:HH:HH;_') #日期掩码 pDatelineEdit.setInputMask('0000-00-00') #许可证掩码 pLiceseLineEdit.setInputMask...(' AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#') #添加名称与控件到表单布局 flo.addRow('数字掩码',pIPlineEdit) flo.addRow...('Mac掩码',pMAXlineEdit) flo.addRow('日期掩码',pDatelineEdit) flo.addRow('许可证掩码',pLiceseLineEdit)...在这个例子,演示了使用QLineEdit对象的一些方法 第一个文本框e1,显示文本使用自定义字体,右对齐,允许输入整数 第二个文本框e2,限制输入小数点两位 第三个文本框e3,需要一个输入掩码应用于电话号码

2.1K21

pyqt5 lineedit_pyqt5 tablewidget

下表列出了输入掩码的占位符和字面字符,并说明其如何控制数据输入 字符 含义 A ASCII字母字符是必须输入的(A-Z,a-z) a ASCII字母字符是允许输入的,但不是必须输入的 N ASCII...:HH:HH;_') #日期掩码 pDatelineEdit.setInputMask('0000-00-00') #许可证掩码 pLiceseLineEdit.setInputMask('>AAAAA-AAAAA-AAAAA-AAAAA-AAAAA...;#') #添加名称与控件到表单布局 flo.addRow('数字掩码',pIPlineEdit) flo.addRow('Mac掩码',pMAXlineEdit) flo.addRow('日期掩码'...lineEditDemo() win.show() sys.exit(app.exec_()) 在这个例子,演示了使用QLineEdit对象的一些方法 第一个文本框e1,显示文本使用自定义字体...,右对齐,允许输入整数 第二个文本框e2,限制输入小数点两位 第三个文本框e3,需要一个输入掩码应用于电话号码 第四个文本框e4,需要发射信号textChanged,链接到槽函数textChanged

1.3K20

qlineedit_qt layoutstretch

当在同一个输入框中切换验证器和输入掩码的时候,最好是清除验证器或输入掩码,防止不确定的行为。 | 版权声明:一去、二三里,未经博主允许不得转载。...如果输入框有一个输入掩码,那么,掩码定义字符串的最大长度。...掩码掩码字符和分隔符字符串组成,后面可以跟一个分号和用于空白的字符,空白字符在编辑总是从文本删除。 示例: 掩码 注意事项 000.000.000.000;_ IP地址,空白是_。...:%1").arg(strText)); } 验证器 通常情况下,我们会对用户的输入做一些限制,可以通过验证起来设置,常见的有:整形、浮点型及其它自定义验证器。...要限制用户输入,除了验证器,还可以使用输入掩码,常见的有IP、MAC地址、日期、License号等。

2.2K30

Web表单开发之实时格式化显示——Cleave.js

---- Github https://github.com/nosir/cleave.js 特征 信用卡号码格式 电话号码格式(国际化) 日期格式 数字格式 自定义定界符,前缀和块模式 CommonJS...Cleave.js是通过格式化键入的数据来提供一种提高输入字段可读性的简便方法。通过使用该库,无需编写任何令人难以置信的正则表达式或掩码模式即可格式化输入文本。...但是,这并不意味着要替换任何验证或掩码库,仍然需要对数据进行服务器端的校验。也就是说Cleave.js是为了更加好的可读性 实践 信用卡 ?...creditCard: true, onCreditCardTypeChanged: function (type) { // update UI ... } }); 日期...= new Cleave('.input-element', { numeral: true, numeralThousandsGroupStyle: 'thousand' }); 自定义

2.1K20

PS模块第九节:PA PLM210详细练习

01 目录 1 介绍PLM210 2 工作分解结构 2.1 SAP项目系统的结构 2.2 自定义工作分解结构 2.3 工作分解结构 2.3.1 任务 1:项目生成器创建工作分解结构 项目生成器手动创建一个项目...(可选:检查电梯项目的编码掩码) 通过复制“为项目系统自定义的配置文件1004(电梯模型组4),创建项目配置文件GR##(描述为GR##销售项目)。...表概述输入以下数据: 回车自动生成结构 4.掩码自动生成结构 使用选定的 WBS 元素的标识和所使用的编码掩码来推导工作分解结构的结 构。...此外, 您还可以将文档管理系统的文档链接到项目。可选:项目中设置并传递用户 状态。 1.日期定义 项目生成器项目定义存储整个项目期间的基本日期。...4.里程碑 使用里程碑(使用:00001 项目想法)来指定应在项目开始12天内举行一个启动会议。您应该能够在里程碑趋势分析评估此里程碑的日期变化。

1.6K31

精读《设计完美的日期选择器》

摘要 日期选择器作为基础组件重要不可或缺的一员,大家已经快习惯它一成不变的样子,输入框+日期选择弹出层。但到业务,这种墨守成规的样子真的能百分百契合业务需求吗。...设计原则 2.1 通用设计 1)明确需求,是实现日期选择、日期区间选择、时间选择 2)用户选中日期是否需要自动触发下一步?尤其是某些固定业务流程 3)日期选择器是否是最佳的日期选择方法?...2.2 输入框设计 1)用户是否可以自定义输入日期,还是只能通过点击选择程序给出的日期?有时候直接输入的效率明显高于点击选择,很多银行流水查询的场景中就提供自定义输入。...2)用户自定义输入如何保证日期格式正确性? 3)是否需要提供预设场景输入? 比如昨天,三天前,七天前,30天前?像很多数据分析场景,分析师会关注数据周期,比如流量的周环比,月环比,年环比。...3.4 对话式交互 采用与用户交互的方式选择日期,如果今后应用上AI,单纯的日期选择器是不是会消失不见呢?..

1.3K10

Access数据库表字段属性(二)

大家好,上节介绍了字段属性输入掩码和格式,本节介绍验证规则和验证文本等。验证规则和Excel的有效性规则类似。 一、验 证 规 则 验证规则属性是用于限制用户输入的值的范围。...(输入掩码属性只能限制位数,但不能限制值的具体范围。) 使用验证规则就需要用到几个逻辑连接词,and并且、or或者、not非、is null空值和is not null非空值。...示例3 再比如录入日期的字段,要求输入日期数据,必须是某个固定日期之后的。验证规则输入表达式>=#2019-12-5#。(表达式中出现日期时需要# # ) ?...保存返回数据表视图,输入日期如果在该日期之前,无法保存。 二、 验 证 文 本 验证文本是当输入的字段值不符合验证规则时,打开的警告信息显示的文本。(不需要双引号)。...可以通过验证文本输入“请输入8至18岁之间的数值”。保存再回到数据表视图中,输入20试验下。 ? 三、 必 需 属 性 必须属性有[是/否]两个选项,表示该字段是否必须输入数据。

4.5K30

iOS 9人机界面指南(四):UI元素(下)- 腾讯ISUX

活动指示器: 当任务进行和加载时旋转,任务完成自动消失 不支持用户交互行为 工具栏或主视图中使用活动指示器来告知用户任务或加载正在进行,但并不提示该过程何时会结束。 不要使用静止的活动指示器。...举个例子,新建邮件的界面,用户可以点击该按钮来邮件添加收件人,而不需要用键盘输入收件人的名字。...由于添加联系人按钮属于键盘输入联系人方法的替代品,我们不推荐不支持键盘输入的界面中使用添加联系人按钮。...使用日期时间选择器来让用户选择时间,而不是让用户自己输入一个包含了日期、时间等多个部分的时间值。 尽量地让用户在当前内容中使用日期选择器。最好避免用户使用日期选择器的时候要进入另外一个界面。...,当前模态视图也会消失),和一个取消按钮(点击即放弃当前任务,同时当前模态视图消失) 当需要用户完成与你的app的基础功能相关的、独立的任务的时候,可以使用模态视图。

13.2K30

IJCAI 2021|美团提出车道线检测新框架SGNet,精准且快速

交通场景,车道线作为道路的重要标识,是道路理解的主要要素之一。...如图 4 所示,消失点(图中黑圆点)及其周围区域(图 4 灰圆点)生成 anchor,anchor 生成过程,针对每个点,每隔 ? 角度,生成一个 anchor,角度范围是[0,180]。 ?...3、多层级结构信息约束 (1)像素级感知 为了更好地预测车道线的细节,预测消失点的同时,引入车道线的像素感知。如图 2 所示,车道线像素感知分支与消失点预测分支有着相同的输入和网络结构。...(2)车道线级关系 进一步地,现实生活车道线的构建都会遵守国标规则,其中最重要的就是车道线间的等距平行规则。由于成像原因,这种关系仿射变换二维图像上不再保持,但依然潜在存在。...该过程,每一条车道线实例L_Lane经过转换得到 ? ,鸟瞰图中不同的 ? 保持平行关系。因此,对于一张图片中的两个车道线实例 ? ,通过H矩阵将其投射到鸟瞰图视角下,得到相应的 ? 。

94640

牛逼!表单自动格式化

日期 年-月-日的格式化。我们只需要正常输入数据“20201209”,表单自动格式化位“2020-12-09” 两位简写的日期格式月/年也是一样! 时间 对于时间个格式化,用于显示的情况比较多!...格式化你的输入内容 根据上一部分的内容,我们可以知道 Cleave.js 就是帮助我们输入的时候,边输入,边格式化。 通过使用这个库,您不需要编写任何正则表达式来控制输入文本的格式。...如果输入错误的内容,这些错误的内容是不会显示的,连校验和验证都省略了。然而,这并不意味着取代任何验证或掩码库,你仍应在后端验证数据。...毕竟它只管表单上的显示内容~ Cleave.js 支持信用卡号码、电话号码格式(支持各个国家)、日期格式、数字格式、自定义分隔符,前缀和块模式等。...React的使用 直接NPM安装 npm install --save cleave.js 然后组件引入使用即可。

14530

最新iOS设计规范五|3大界面要素:控件(Controls)

但用户执行操作可能改变主意,所以始终要实现撤消和返回功能。 使用有用的自定义命令扩张编辑选项 。...iOS 14及更高版本日期选择器支持其他选择值的方式,例如在日历视图中选择日期或使用数字键盘输入日期和时间。两种类型的选择器都使人们可以通过选择单值或多值来轻松输入信息。 ?...任务完成它会消失。活动加载器是不是可交互元素。 ? 进度条优于加载器。如果加载过程是可量化的,请使用进度条而不是加载器,以便用户可以更好地衡量正在发生的事情以及需要多长时间。 保持加载器的转动。...iOS 12及更早版本,以及全面屏显示的设备上,网络活动指示器会在发生联网时屏幕顶部的状态栏旋转,联网完成消失。和活动加载指示器样式一样,并且是非交互式的。 ?...使用文本输入框来输入少量信息,例如电子邮件地址。 ? 文本输入显示必要的提示,以帮助用户更好的输入。当输入没有其他文本时,文本输入框可以包含占位符文本。

8.5K30

运维必备 | Win批处理(Batch)编程常用DOS命令汇总收藏备查

双击"Prompt"值,然后"数值数据"字段输入您想要设置的新prompt命令。 单击"确定"保存更改。 关闭注册表编辑器。 现在,您下次打开命令提示符时,将会看到您所设置的新prompt命令。...指定关联掩码,正如 NUMA 节点的处理器掩码正确移动到零位起始位置一样。进程被限制指定关联掩码和 NUMA 节点之间的那些通用处理器上运行。...# 若10s还没选择输入,则默认值为y。...doskey 命令 - 创建脚本宏命令别名 描述: 此命令类似于Linux的alias命令,它允许您创建、编辑和使用自定义命令别名, 经常需要输入重复命令的场景下有非常大的用处。...echo title %cd% ^&^& calc.exe >> cmd_title.bat @REM 执行cd时执行我们自定义的后门脚本,当执行cd将会触发执行calc命令,下述的 $T 等同于

96320

如何在CUDA为Transformer编写一个PyTorch自定义

我们将重点关注第 85、87 和 88 行掩码操作。它组合了多个操作符来模拟「掩码处理的 softmax」操作:为 softmax 的掩码输入填充负无穷数,从而使 softmax 忽略它们。...掩码处理的 Softmax 首先,我认为我们可以通过将运算过程封装进一个操作符来优化掩码处理的 softmax,因为执行多个操作符本身就会产生开销。...一些假设条件下,我们可以最小化内存访问的次数。前面的第一版现在可以从全局内存读取两种类型的值(掩码输入)。用于归一化的点乘注意力机制的掩码通常有如下所示的形式。 ?...掩码处理的 Softmax(MaskedSoftmax)的执行时间现在比第一版快 2.5 倍。 ? 我还检查了这种优化多大程度上提高了整个训练的速度。...结语 我 CUDA 编写了一个自定义的操作符并使 Transformer 的训练快了约 2%。我首先希望仅仅在 CUDA 重写一个操作符来得到巨大的性能提升,但事与愿违。

1.8K30
领券