我有一个textField,只接受两位小数的数字,我希望它存储在ArrayList中....我该怎么做?
private JTextField textField;
textField = new JTextField();
textField.setBounds(126, 105, 46, 14);
contentPane.add(textField);
textField.setColumns(10);
NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.getDefault());
DecimalFormat decimalFormat = (DecimalFormat) numberFormat;
decimalFormat.setGroupingUsed(false);
textField = new JFormattedTextField(decimalFormat);
textField.setColumns(15);
double b = textField.getText(); //Change type of b to string
ArrayList<Double> myVector=new ArrayList<Double>();
myVector.add(b);
答案 0 :(得分:1)
我不确定您是否可以将输入限制为具有固定数量的小数位。但您可以选择验证输入并将其格式化为所需格式。您可以使用正则表达式模式来检查输入的格式。
答案 1 :(得分:0)
您的b
是双重类型,而getText
不会返回双重类型。
在将其分配给该变量之前,您需要将其更改为双倍。
double b = 0;
try
{
b = Double.parseDouble(textField.getText().toString());
}
catch(NumberFormatException e)
{
System.out.println("Invalid number!");
}
ArrayList<Double> myVector=new ArrayList<Double>();
myVector.add(b);
答案 2 :(得分:0)
首先检查TextField
中的字符串是否有效,然后执行您需要执行的操作。如果你想要一个特定的数字位数,正则表达式会很好。
此示例检查完全两位小数的数字。
String someNumber = "1234.12"; // your TextField value goes here
if (someNumber.matches("\\d+(\\.\\d{2})?")) {
System.out.println("valid");
double doubleNumber = Double.parseDouble(someNumber);
System.out.println(doubleNumber);
// more code
} else {
System.out.println("invalid");
}