任何人都知道当用户在字段中输入时如何自动将$符号添加到文本字段中,并且还使用户无法取消$符号。

最佳答案

不是“严格地”问您要问的内容,而是以How to use for attend text fields为例,例如...

paymentField = new JFormattedTextField(NumberFormat.getCurrencyInstance());
paymentField.setValue(new Double(payment));
paymentField.setColumns(10);
paymentField.setEditable(false);


问题在于用户可能会删除$符号,并且验证非常严格,这意味着输入到字段中的文本必须以$开头

另一种可能性是使用Swing Labs的SwingX库中的BuddySupport API



NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMinimumFractionDigits(2);
paymentField = new JFormattedTextField(nf);
paymentField.setValue(100d);
paymentField.setColumns(10);
paymentField.setEditable(false);
BuddySupport.addLeft(new JLabel("$"), paymentField);


这意味着$是与实际字段不同的组件,不能由用户删除(但包含在该字段中,因此不受父容器的布局管理器的影响)

10-05 21:57