2

テキストフィールドを動的に生成しました。生成されるテキストフィールドの数。ユーザーが指定した数。テキストフィールドを生成した後、ユーザーは名前と連絡先番号をテキストフィールドに挿入します。だから私の質問は、これらの値をデータベースに保存する方法です。私は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

4 に答える 4

0

JTextFieldすべてのへの参照をに保存するList<JTextField>と、そこからリストを繰り返すだけでアクセスできるようになります。

これらのような2つの変数が必要になります-

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
}
于 2012-05-29T10:18:53.477 に答える
0

配列を使用して textFields を処理してから、これらを有効にする必要があります: 次のように textField から文字列を取得します。

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

ただし、最初に文字列配列を定義する必要があります。

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

それらをデータベースに保存します。

于 2012-05-29T10:31:31.280 に答える
0

必要なときにいつでも yourTextField.getText() メソッドを呼び出して、テキスト フィールドの文字列を取得します。

String x = yourInputField.getText();

アクション リスナーをテキスト フィールドにアタッチします。ユーザーがそのフィールドに Enter を入力するたびに呼び出されます。その後、リスナーは DB に情報を書き込むことができます。

于 2012-05-29T10:20:52.160 に答える
0

JPanelイベント リスナー メソッドでは、その中のfor allをループできます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.
    }
}
于 2012-05-29T10:24:40.780 に答える