当我将数字输入到JFormattedTextField
. 例如,当用户输入 124451000 时,它必须在屏幕上动态显示为 124.451.000,而不是当用户按 Tab 或 Enter 键时。
当输入第四个数字时,我想在第三个数字之后添加一个点(例如,2.566)。
public class MyDocListener implements DocumentListener{
NumberFormat nf = NumberFormat.getIntegerInstance(Locale.GERMAN);
NumberFormatter nff = new NumberFormatter(nf);
DefaultFormatterFactory factory = new DefaultFormatterFactory(nff);
final String newline = "\n";
public void insertUpdate(DocumentEvent e) {
updateLog(e, "inserted into");
NumberFormat numberFormatter = new DecimalFormat("#,###,###");
// I put this code to change the format.
}
public void removeUpdate(DocumentEvent e) {
updateLog(e, "removed from");
}
public void changedUpdate(DocumentEvent e) {
//Plain text components don't fire these events.
}
public void updateLog(DocumentEvent e, String action) {
Document doc = (Document)e.getDocument();
int changeLength = e.getLength();
displayArea.append(
changeLength + " character" +
((changeLength == 1) ? " " : "s ") +
action + doc.getProperty("name") + "." + newline +
" Text length = " + doc.getLength() + newline);
}
}
好吧,我尝试了这段代码,但我无法运行,我的 JFormattedTextField 在另一个类中,我无法在另一个类中成功。我无法访问另一个类中的对象。