我目前正在开发一款计算器应用程序,它模仿Windows计算器作为辅助项目,并且我遇到了一些我无法弄清楚的事情。
我有一个将ComponentOrientation设置为RIGHT_TO_LEFT的JTextField,如下所示:
bottomText.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
以及我添加文字的方式如下:
bottomText.setText(bottomText.getText() + key.getNumber());
用于带数字的键(0到9)。问题是当我尝试添加deicmal时,如下所示:
bottomText.setText(bottomText.getText() + ".");
它显示为" .123"直到我按下另一个键,然后它切换到" 123.4"。奇怪的是,如果我这样做:
bottomText.setText(bottomText.getText() + "f");
用" f"替换小数,它显示了它应该如何正常,即" 123f",然后" 123f4"。我的数字的十进制表示很好(存储在一个双变量中),但它在JTextField中显示奇怪。有谁知道这里发生了什么?
答案 0 :(得分:0)
看起来我应该使用
bottomText.setHorizontalAlignment(SwingConstants.TRAILING);
而不是
bottomText.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
谢谢Andrew Thompson的例子。