2012-02-20 65 views
-2

好吧,我正在尝试为程序中的任何JTextField创建一个快速双验证程序。我想将它传递给一个函数,然后检查一个字段的内容,确保它是一个double,然后将它作为double函数返回。如何在Java中引用变量的变量而不是变量

这是我到目前为止,但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表示文本字段的名称。我需要文本字段的值而不是TF中的值。我想有这个在这里,或许,突出现场红色等

回答(感谢猎人): 最好的办法是通过对象,不知道为什么,我试图分析出一个字符串引用的值。

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

为什么不只是传递了JTextField对象的方法? – 2012-02-20 02:31:45

+0

@Hunter啊,真的,我不知道我在想什么!谢谢,把它作为答案,我会接受。 – Jeff 2012-02-20 02:34:09

+0

由于您可以传递JTextField,为什么不传递JTextField.getText()?你的双验证器没有理由访问TextField对象。 – coolcfan 2012-02-20 03:27:09

回答

1

你真正应该传递的JTextField对象,以你的方法,让你正在寻找的信息,我甚至不知道是否有可能从刚它的名字获得了JTextField对象;也许用反射,但对于这个应用程序来说反射似乎过于复杂。

例如:

​​
+0

再次感谢,那里有一个大脑问题。 – Jeff 2012-02-20 02:47:36

1

您可以使用Double类将其转换..

public Double valDouble(String theTF) 
{ 
     Double theDouble; 
     try 
     { 
      theDouble = Double.valueOf(theTF); 
      return theDouble; 
     } 
} 
+0

对不起,我遗漏了parseDouble,我问的是如何获得一个JTextField对象的值,其中的TF发送名称。 – Jeff 2012-02-20 02:29:26