问题标签 [jformattedtextfield]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 为什么 JFormattedTextField 是邪恶的?
在这个问题中,有没有办法只接受 JTextField 中的数值?其中一个答案表明 JFormattedTextField 有问题。
我还没有使用它,但是有人可以扩展(或不同意)这个类的问题吗?
java - 焦点上的 JFormattedTextField 插入符号位置
我在我的程序中使用了一些 JFormattedTextFields。由于某种原因,当单击文本字段后文本字段获得焦点时,插入符号位置总是跳到左侧(位置 0)。我希望插入符号最终出现在用户单击的位置。因此,如果我在两位数之间单击,插入符号应该在这两位数之间结束。
所以我实现了一个 FocusListener 来获取点击位置并在那里设置插入符号的位置。
我已经尝试了很多方法来让他工作。我尝试使用 final 关键字,它有效,但仅适用于单个文本字段。
我在焦点侦听器中使用了 set/get 方法来分配当前对象,但不确定如何使这个“安全”(例如,它们是否需要同步?)。
也许我缺少一些东西?
java - 如何获得与用户从 JFormattedTextField 看到的值相同的值?
我正在使用NumberFormatter
and JFormattedTextField
,但.getValue()
不会返回与用户看到的相同的值。
我认为输入字符串是使用 NumberFormats 解析方法解析的,并且我从NumberFormat.getNumberInstance();
实际的语言环境中获得了 Numberformat。所以我认为我不能轻易扩展它并编写自己的解析方法?
例如,如果用户键入1234.487
thegetValue()
将返回:
1234.487
但用户将被显示1,234.49
另一个例子,使用NumberFormat.getCurrencyInstance();
. 用户类型1234.487
和getValue()
将返回1234.487
,但用户将被显示$1,234.49
相反,如果 Formatter 无法在不四舍五入的情况下格式化值,我希望生成 ParseException。如果用户类型相同4.35b6
,默认情况下格式化程序将显示4.35
并且值将是4.35
,但我想要 ParseException,因为用户输入了无效值。
这是我尝试过的代码:
如何获得与用户看到的相同的价值?
java - JFormattedTextField : 输入持续时间值
我想使用 aJFormattedTextField
来允许用户将持续时间值输入到表单中。示例有效值为:
2h 30m
72h 15m
6h
0h
但是,我在这方面的成功有限。有人可以建议如何实现吗?如果这个结果也可以使用 a 来实现,我JTextField
很好。
谢谢!
如果它值得,这是我目前的尝试:
这种排序工作除了:
我无法获取*h
并m
显示为纯文本(我尝试转义)- 小时数有最大值
*:见@nanda 的回答
java - JFormattedTextField 使用正则表达式格式化程序?
在让 JFormattedTextField 与我的自定义格式一起工作感到非常沮丧之后,我想知道是否有 a Formatter
orFormatterFactory
使用正则表达式?
我的想法是,如果有,那么我可以将它包装在一个静态类中并像这样调用它:
有关更多背景信息,请参阅我之前的问题:
“我想使用 JFormattedTextField 来允许用户将持续时间值输入到表单中。示例有效值是:2h 30m
72h 15m
6h
0h
”
java - 在 Java 中的 JFormatterTextfield 中设置数字的上限
我想为格式化程序文本字段中的数字设置上限。假设有一个字符串具有以下格式:
036 12' 23.67"
第一个数字必须小于 180,因此当用户尝试键入大于 180 的数字时,它必须被屏蔽。我使用 MaskFormatter 如上所述格式化字符串,但我无法为第一个数字设置上限。我怎样才能做到这一点。谢谢。
java - 什么是创建仅允许用户在 Java 中输入整数/双精度的文本字段(或此类)的简单方法?
我正在寻找一种方法来确保我的文本字段(JTextField、JFormattedTextField)在我调用 .getText() 时返回双精度或整数而不是字符串。最好的方法是什么(如果可能)?
谢谢!
坏熊猫:D
java - 适用于 Mac OS X 10.6 Update 2 (1.6.0_20) 的 JFormattedTextField 删除 Java 中的错误的解决方法
显然,Mac OS X 的最新 Java 更新中引入了一个错误,它导致 JFormattedTextFields 中的删除被执行两次。请参阅http://lists.apple.com/archives/java-dev/2010/May/msg00092.html
按下删除键时,会调用 DefaultEditorKit.deletePrevCharAction 两次。
有什么解决方法的建议吗?
我正在考虑用一个修补版本替换我的文本字段的删除操作,该版本以某种方式过滤掉这些重复的调用。
java - 订阅 JFormattedTextField 中的值更改的“好方法”是什么?
我想订阅 JFormattedTextField 上的值更改。
检查源代码,我唯一看到的是属性“值”是在一个新值上触发的。但是这个属性只在那里被引用,并且直接写出来,没有常量。如果我订阅此属性更改,它会起作用。
但是,我想知道:这是正确的方法吗?
java - 为什么我必须为此 JFormattedTextField 按两次 Enter 才能激活 JDialog 的默认按钮?
在下面的代码示例中,如果用户更改了 JFormattedTextField 的内容然后按 Enter,则该对话框应该就像按下 OK 按钮一样。但这需要按两次Enter 才能发生。
普通的 JTextField 总是像我期望的那样工作——更改文本然后按 Enter 会立即激活 OK 按钮。
这适用于 Mac OS X 10.6 和当前的 Mac Java 更新 1.6.0_20。
这是一种解决方法吗?这是 Mac 特有的问题吗?