3

我是 Java 新手 在我的第一个 Java 程序(使用 Netbeans)中,我想用点“。”添加输入字段自动格式编号。使用 JTextfield 的分隔符。这是我的短代码:

private void PayTransKeyReleased(java.awt.event.KeyEvent evt) {                                       
// TODO add your handling code here:
String b;
b = PayTrans.getText();
if (b.isEmpty()){
    b = "0";
}
else {
    b = b.replace(".","");
    b = NumberFormat.getNumberInstance(Locale.ENGLISH).format(Double.parseDouble(b));
    b = b.replace(",", ".");
}
PayTrans.setText(b);
}

但我觉得不够完美,因为插入符号/光标无法通过键盘上的箭头键移动。我尝试搜索更好的代码,但我从未找到它。有没有人有解决方案?谢谢。

4

2 回答 2

3

你应该使用 aJFormattedTextField代替。

private DecimalFormatSymbols dfs;
private DecimalFormat dFormat;

dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator('.'); //separator for the decimals
dfs.setGroupingSeparator(','); //separator for the thousands
dFormat = new DecimalFormat ("#0.##", dfs);

JFormattedTextField ftf = new JFormattedTextField(dFormat);

这是有关自定义格式的链接。

于 2013-05-22T07:56:26.107 回答
1

更改语言环境。

ENGLISH千位分隔符,和小数点分隔符是.. 在大陆语言中,例如FRENCH,这是相反的。

您还可以使用NumberFormat. 您不需要进行任何更换。

于 2013-05-22T07:58:51.697 回答