java:如何存储动态生成的文本字段的值

时间:2012-05-29 10:14:09

标签: java mysql swing netbeans-7

我已动态生成文本字段。用户给出的数字生成了多少个文本字段。生成文本字段后,用户可以在文本字段中插入名称和联系人号码。所以我的问题是如何将这些值存储到数据库中。我正在使用Mysql。我知道getText()方法,但如何使用它?这是动态生成的文本字段的代码。

private void Extra()
{   
if(no_of_people.getText().equals(" "))
{
    String st="The entry 'Number of People' should not be blank.";
    JOptionPane.showMessageDialog(null,st);
}    
try
{
String nop=(no_of_people.getText().toString());
int nop1 = Integer.parseInt(nop.trim());
int j=nop1;

Extra_people extrpeo=new Extra_people();
JPanel panel = new JPanel();
extrpeo.setSize(450,500);
extrpeo.setVisible(true);
extrpeo.setLayout(new java.awt.BorderLayout());
extrpeo.add(panel);
extrpeo.validate();
Vector textFieldVector = new Vector();
JLabel lb1,lb2;
JTextField tf,tf1;
int i=1;
while (i <= nop1) 
{
    lb1=new JLabel("Name "+i);
    panel.add(lb1);
    tf = new JTextField(10);
    textFieldVector.add(tf);
    panel.add(tf);
    //String value = tf.getText();
    lb2=new JLabel("Contact Number "+i);
    panel.add(lb2);
    tf1 = new JTextField(10);
    textFieldVector.add(tf1);
    panel.add(tf1);
    i++;
    }
    panel.validate();
    panel.repaint();
    }    
    catch(Exception e)
    {
        System.out.println(" "+e);
    }
    }

4 个答案:

答案 0 :(得分:0)

您可以将对JTextField的所有List<JTextField>的引用存储到List<JTextField> yourArrayListForName = new ArrayList<JTextField>(); List<JTextField> yourArrayListForContact = new ArrayList<JTextField>(); 中,然后您可以通过遍历列表来访问它们。

你需要两个这样的变量 -

while

然后,修改您的while (i <= nop1) { lb1=new JLabel("Name "+i); panel.add(lb1); tf = new JTextField(10); textFieldVector.add(tf); panel.add(tf); yourArrayListForName.add(tf); // add this line //String value = tf.getText(); lb2=new JLabel("Contact Number "+i); panel.add(lb2); tf1 = new JTextField(10); textFieldVector.add(tf1); panel.add(tf1); yourArrayListForContact.add(tf1); // add this line i++; } 循环 -

for(JTextField field : yourArrayListForName)
{
    field.getText();     // input will be obtained here
}

for(JTextField field : yourArrayListForContact)
{
    field.getText();     // input will be obtained here
}

然后,当您需要访问这些值时,请使用以下内容 -

{{1}}

答案 1 :(得分:0)

在需要时通过调用yourTextField.getText()方法获取文本字段中的字符串。

String x = yourInputField.getText();

将动作侦听器附加到文本字段。只要用户在该字段中键入Enter,就会调用它。然后,侦听器可以将信息写入DB。

答案 2 :(得分:0)

在您的事件监听器方法中,您可以遍历JPanel内的所有TextField

for (Component c : panel1.getComponents()) {
    if (c instanceof JTextField) { 
       JTextField textField = ((JTextField)c);
       String name;
       String contact;
       if(textField.getName().startsWith("Name") {
           // Name field
           name = textField.getText();
       } else {
           // Contact field
           contact = textField.getText();

       }
       // Validate and persist.
    }
}

答案 3 :(得分:0)

Handel textFields有一个数组,那么你必须能够: 从textField获取字符串,如下所示:

str[i] = textField[i].getText();

但你必须先定义字符串数组:

String[] str[] = new String[nop1]();

然后将它们存储到数据库中。