2014-07-25 51 views
0

我需要獲取不同文本框的值。將值連接到變量名

我想每一個使用for環或類似這樣的值:

txt0,txt1,txt2,txt3; 
for(int i=0;i<4;i++){ 
    String valor = (txt+i).getText(); 
} 

有一種方法通過連接另一個值的文本框或任何其他的名字來獲取值目的??

+5

*您威力*能夠得到的東西使用反射來工作的方式,但它將方式,只是將文本框添加到集合(或a rray),然後遍歷每個元素。 – JonK

回答

4

我不知道你是否有權訪問變量,但你可以使用數組。這將使循環更容易。

TextBox[] text = {txt0, txt1, txt2, txt3}; 

for (TextBox txt : text) { 
    String valor = txt.getText(); 
} 
+0

完美!那正是我需要的,謝謝你 – angelvals

+0

@angelvals沒問題 –

0

我不知道有沒有很好的理解你的問題所以這可能是胡亂猜測

如果您希望將所有文本框字段連接起來,您需要一個可以容納所有引用的集合,並且您的主要解決方案應該是JAVA Collections API。

你需要將所有JTextField對象的引用存儲在Collection(每次構建一個新的將其添加到Collection),可以是ListMapSet,然後遍歷該Collection一旦它填寫並建立您使用它們的值連接起來String(我建議使用StringBuilder的方式,你真正做到這一點):

// Initialize your Collection, will be an ArrayList for this e.g. 
List<JTextField> textFields = new ArrayList<JTextField>; 

// Instantiation example, it should be done for all fields 
JTextField txt0 = new JTextField(20); 
textFields.add(txt0); 
// Do the same for txt1, txt2 ... 

// Iterate over your List to get the concatenated String 
StringBuilder sBuilder = new StringBuilder(); 
for(JTextField textField : textFields){ 
    sBuilder.append(textField.getText()); 
} 

// Print your final value 
System.out.print(sBuilder.toString());