我已动态生成文本字段。用户给出的数字生成了多少个文本字段。生成文本字段后,用户可以在文本字段中插入名称和联系人号码。所以我的问题是如何将这些值存储到数据库中。我正在使用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);
}
}
答案 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]();
然后将它们存储到数据库中。