Вы все еще не показываете нам NumberFormat
, который использует JFormattedTextField
, и это на самом деле критическая информация, необходимая для решения вашей проблемы.Я могу только предположить, что вы используете NumberFormat.getNumberInstance()
для средства форматирования, и если это так, если вы проверите API для этого класса, вы увидите, что для этого объекта свойству groupingUsed по умолчанию установлено значение true.Вы хотите установить значение false, чтобы избавиться от запятых.
Например, вот мой SSCCE , который показывает вашу проблему и ее решение:
import java.awt.BorderLayout;
import java.text.NumberFormat;
import javax.swing.*;
public class FormattedFieldFun {
private static void createAndShowUI() {
NumberFormat numberFormatGuFalse = NumberFormat.getNumberInstance();
numberFormatGuFalse.setGroupingUsed(false); // ***** HERE *****
JFormattedTextField jftFieldGuFalse =
new JFormattedTextField(numberFormatGuFalse);
NumberFormat numberFormatGuTrue = NumberFormat.getNumberInstance();
// numberFormatGuFalse.setGroupingUsed(true); // not necessary as is default
JFormattedTextField jftFieldGuTrue =
new JFormattedTextField(numberFormatGuTrue);
JPanel panel = new JPanel(new BorderLayout());
panel.add(jftFieldGuFalse, BorderLayout.NORTH);
panel.add(jftFieldGuTrue, BorderLayout.SOUTH);
JFrame frame = new JFrame("FormattedFieldFun");
frame.getContentPane().add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
createAndShowUI();
}
});
}
}