好的,我正在尝试为程序中的任何JTextField创建一个快速双重验证器。我想把它传递给一个函数,然后检查一个字段的内容,确保它是一个double,然后将它作为double返回给函数。
这是我到目前为止所做的,但是.TF.getValue()应该得到字符串的值,而不是字符串本身。
public double valDouble(String theTF)
{
double theDouble;
try
{
theDouble = theTF.getValue();
return theDouble;
}
}
如何对字符串的内容运行getValue()?
编辑: 好吧,我有点搞砸了我的意思。我理解parseDouble,但是我在这里意外地离开了这就是我现在所拥有的:
public static double valDouble(String theTF)
{
double theDouble;
try
{
theDouble = Double.parseDouble(theTF);
}
catch(NumberFormatException e3)
{
theDouble = 0;
}
return theDouble;
}
我的真实问题是theTF代表TextField的名称。我需要文本字段的值而不是TF中的值。我想在这里也可以突出显示红色等等。
回答(感谢Hunter): 最好的方法是传递Object,不知道为什么我试图解析字符串引用的值。
public static double vDbl(JTextField theTF)
{
double theDouble;
try
{
theDouble = Double.parseDouble(theTF.getText());
}
catch(NumberFormatException e3)
{
theTF.setText("Invalid");
return 0;
}
return theDouble;
}
答案 0 :(得分:1)
您应该将JTextField对象传递给您的方法以获取您要查找的信息,我甚至不知道是否可以从其名称获取JTextField对象;也许有反思,但对于这个应用,反射似乎过于复杂。
例如:
public double valDouble(JTextField theTF)
{
try
{
return Double.parseDouble(theTF.getText());
}
catch(NumberFormatException nfe)
{
System.err.println(nfe.getMessage());
}
}
答案 1 :(得分:1)
您可以使用Double类进行转换..
public Double valDouble(String theTF)
{
Double theDouble;
try
{
theDouble = Double.valueOf(theTF);
return theDouble;
}
}