2012-02-20 63 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