java - 设置 org.eclipse.swt.widgets.Spinner 的小数点分隔符

标签 java swt separator

编辑:这是不可能的,因为 swt Spinner 小部件直接从操作系统而不是从 Java VM 获取小数分隔符。

我有一个德语应用程序,它使用默认的 , 作为小数分隔符。我想将应用程序中所有小数分隔符的使用从 , 更改为 . 而不更改区域设置,因为应用程序在其他方面仍然需要是德语。

旋转器的创建方式如下:

Spinner spanWidthSpinner = new Spinner(parent, SWT.BORDER);
spanWidthSpinner.setValues(0, 1, Integer.MAX_VALUE, 2, 100, 1000);

我像这样启动我的应用程序:(请注意,如果我将目标语言设置为 ende 并不重要,分隔符始终为 ,

-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}

我尝试设置以下内容,但完全没有效果:

DecimalFormatSymbols.getInstance().setDecimalSeparator('.');

我还尝试设置以下本地: Locale.setDefault(new Locale("en", "US")); 这也始终显示 , 作为小数分隔符,而不是

基本上,我希望我的 org.eclipse.swt.widgets.Spinner 实例显示 . 而不是 , 作为小数分隔符。

我怎样才能实现这一目标?我更喜欢全局设置,但必须在单个小部件上设置它也可以。

最佳答案

由于 getDecimalSeparator 方法具有默认访问修饰符,因此不可能通过继承来更改其行为。在我们公司,我们有完全相同的需求,我们必须更改包含 Spinner 类的插件的源代码。我们更改了 Spinner 类的源代码,以便可以重写 getDecimalSeperator 方法(将其公开)并重新打包 jar(例如 org.eclipse.swt.win32.win32.xxx.jar),然后将其放在 delta-pack 插件目录下。此后每当构建产品时,都会使用更改后的插件。

关于java - 设置 org.eclipse.swt.widgets.Spinner 的小数点分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28473075/

相关文章:

ios - 如何在页脚中添加分隔符?

javascript - 如何使用 html 分割可变长度字段

java csv分号问题

Java 递归提供了两种不同的结果。为什么?

java - 将 Display.syncExec 期间捕获的异常传播到调用线程

java - 具有基本算术和符号表达式的 Antlr4 语法

java - eclipse插件如何通过代码在IDE中打开文件

java - 将文本包裹在按钮内

java - BeanUtils 不适用于链 setter

java - Azure 存储帐户 Blob 容器大小