Java JTextField渲染数字分组(作为装饰)
我希望我用来输入数字的JTextField将数字分组(例如,使用分隔符char:1000000或有一点间隙1000000) 我知道这可以通过使用JFormattedTextField和NumberFormat来实现 我不喜欢格式化程序方法,因为它实际上通过插入字符来修改文本。我希望有一个专门的渲染器/装饰器,只定制外观 (这样做的一个优点是,格式在键入文本时就已经应用,而不仅仅是在提交之后)Java JTextField渲染数字分组(作为装饰),java,swing,formatting,rendering,jtextfield,Java,Swing,Formatting,Rendering,Jtextfield,我希望我用来输入数字的JTextField将数字分组(例如,使用分隔符char:1000000或有一点间隙1000000) 我知道这可以通过使用JFormattedTextField和NumberFormat来实现 我不喜欢格式化程序方法,因为它实际上通过插入字符来修改文本。我希望有一个专门的渲染器/装饰器,只定制外观 (这样做的一个优点是,格式在键入文本时就已经应用,而不仅仅是在提交之后) 这能做到吗?通过重写JTextField的一个绘制方法?哪一个?或者通过使用不同的Swing文本组件?请
这能做到吗?通过重写JTextField的一个绘制方法?哪一个?或者通过使用不同的Swing文本组件?请说明原因,
在键入文本时,格式已经应用,而不仅仅是在提交之后。
==格式不正确请参见我的编辑。我澄清了一下:我希望它立即应用,但JFormattedTextField不会出现这种情况。这里有一些关于如何模拟ATM的尝试(JTextField/JFormattedTextField),您需要搜索/自定义编辑器或使用JSpinner
,如图所示。它将根据区域设置自动将9000
呈现为9000
。@AndrewThompson:对于JSpinner,问题完全相同(它实际上在内部使用JFormattedTextField)