2014-07-25 48 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());