Java while循环中的变量JTextField

Java while循环中的变量JTextField,java,arrays,swing,jlabel,jtextfield,Java,Arrays,Swing,Jlabel,Jtextfield,我对这个cicle和JTextField有问题 我想显示一个带有变量“g”字段的表单。 然后我想写下这些字段并使用输入的数据。 现在我不能使用cod.gettextfield(),因为字段的名称总是相同的 我尝试使用数组,但程序给了我一个异常: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException 我该怎么办? 这是我节目的一部分 while (i <= g) { System.

我对这个cicle和JTextField有问题

我想显示一个带有变量“g”字段的表单。 然后我想写下这些字段并使用输入的数据。 现在我不能使用cod.gettextfield(),因为字段的名称总是相同的

我尝试使用数组,但程序给了我一个异常:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
我该怎么办? 这是我节目的一部分

    while (i <= g) {
        System.out.println(g);
        labels2.add(new JLabel("cod.prodotto " + i));
        JTextField cod = new JTextField(8);
        FocusListener focusListener2 = new FocusAdapter() {
            @Override
            public void focusGained(FocusEvent e) {
                JTextField campo2 = (JTextField) e.getSource();
                campo2.selectAll();
            }
        };
        fields2.add(cod);
        i++;
    }

while(i编辑)完整的代码示例。如果这不能回答您的问题,请更详细地描述问题

LinkedList<JTextField> fields2 = new LinkedList<JTextField>();
while (i <= g) {
    System.out.println(g);
    labels2.add(new JLabel("cod.prodotto " + i));
    JTextField cod = new JTextField(8);
    fields2.add(cod);
    FocusListener focusListener2 = new FocusAdapter() {
        @Override
        public void focusGained(FocusEvent e) {
            JTextField campo2 = (JTextField) e.getSource();
            campo2.selectAll();
        }
    };
    i++;
}
// save all data
JTextField tf;
for( JTextField tf: fields2 ) {
    database.save( tf.getText() );
}
// save specific field
database.save( fields2.get(5).getText() );
LinkedList字段s2=新建LinkedList();
而
我希望你能理解。
很抱歉,我的java语言不好,英语也不好,所以

package inserimentoDati;
import java.awt.*;
import java.awt.event.*;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.LinkedList;

import javax.swing.*;
import javax.swing.text.html.MinimalHTMLWriter;
public class swing {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
start();

}
});
}
private static void start() {


final JPanel nprodlabel = new JPanel();
nprodlabel.add(new JLabel("numero prodotti acquistati"));
JPanel prodfield = new JPanel();
FocusListener focusListener3 = new FocusAdapter() {
@Override public void focusGained(FocusEvent e) {
JTextField campox = (JTextField)e.getSource();
campox.selectAll();
}
};
final JTextField prod= new JTextField(3);
prodfield.add(prod);

Box groupprod = Box.createHorizontalBox();
groupprod.add(nprodlabel);
groupprod.add(prodfield);
JPanel prodcontainer = new JPanel(new FlowLayout(FlowLayout.LEFT));
prodcontainer.add(groupprod);

JFrame window1 = new JFrame("prodotti");
window1.add(prodcontainer);

JButton vai= new JButton("vai");

vai.setSize(10,10);
vai.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e1) {
    int g=Integer.parseInt(prod.getText());

    final JPanel labels = new JPanel(new GridLayout(10, 1));
    labels.add(new JLabel("Nome"));
    labels.add(new JLabel("Cognome"));
    labels.add(new JLabel("P.Iva"));
    labels.add(new JLabel("Codice Fiscale"));
    labels.add(new JLabel("Via"));
    labels.add(new JLabel("n°"));
    labels.add(new JLabel("Cap"));
    labels.add(new JLabel("Città"));
    labels.add(new JLabel("Provincia"));
    labels.add(new JLabel("mail"));
    JPanel fields = new JPanel(new GridLayout(10, 1));
    FocusListener focusListener = new FocusAdapter() {
    @Override public void focusGained(FocusEvent e) {
    JTextField campo = (JTextField)e.getSource();
    campo.selectAll();
    }
    };
    final JTextField nome= new JTextField(15);
    final JTextField cognome= new JTextField(15);
    final JTextField p_iva= new JTextField(11);
    final JTextField c_f= new JTextField(15);
    final JTextField via= new JTextField(30);
    final JTextField civico=new JTextField(5);
    final JTextField citta= new JTextField(30);
    final JTextField cap= new JTextField(8);
    final JTextField provincia= new JTextField(2);
    final JTextField mail=new JTextField(20);

    fields.add(nome);
    fields.add(cognome);
    fields.add(p_iva);
    fields.add(c_f);
    fields.add(via);
    fields.add(civico);
    fields.add(cap);
    fields.add(citta);
    fields.add(provincia);
    fields.add(mail);



    Box group = Box.createHorizontalBox();
    group.add(labels);
    group.add(fields);



    JPanel container = new JPanel(new FlowLayout(FlowLayout.LEFT));
    container.add(group);

    JFrame window = new JFrame("Form");
    window.add(container);
    JButton invia= new JButton("invia");
    invia.setSize(30,10);
    invia.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    Scriviword nuovofile=new Scriviword("c:/alessandro",nome.getText(),                 cognome.getText(), p_iva.getText(), c_f.getText(), via.getText(), civico.getText(), cap.getText(), citta.getText(), provincia.getText(),mail.getText());
    inserimentoUtente ins=new inserimentoUtente();
    try {
        ins.inserisciUtente(nome.getText(), cognome.getText(), p_iva.getText(), c_f.getText(), via.getText(), civico.getText(), cap.getText(), citta.getText(), provincia.getText(),mail.getText());
    } catch (Exception e2) {
        // TODO Auto-generated catch block
        e2.printStackTrace();
    }
    try {
        nuovofile.creaDoc();
    } catch (FileNotFoundException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    }});
    JPanel panel= new JPanel();
    panel.add(invia);

    window.add(panel,BorderLayout.SOUTH);
    window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    window.pack();
    window.setVisible(true);


    final JPanel labels2 = new JPanel(new GridLayout(g, 1));
    JPanel fields2 = new JPanel(new GridLayout(g, 1));
    int i=1;

    //JTextField[] cod=new JTextField[g];
    while (i<=g){
        System.out.println(g);
        labels2.add(new JLabel("cod.prodotto "+i));

        //cod[i]= new JTextField(8);
        JTextField cod=new JTextField(8);
        FocusListener focusListener2 = new FocusAdapter() {
            @Override public void focusGained(FocusEvent e) {
            JTextField campo2 = (JTextField)e.getSource();
            campo2.selectAll();
            }
            };

            fields2.add(cod);

        i++;

    }





        Box group = Box.createHorizontalBox();
        group.add(labels);
        group.add(fields);
        Box group2 = Box.createHorizontalBox();
        group2.add(labels2);
        group2.add(fields2);



        JPanel container = new JPanel(new FlowLayout(FlowLayout.LEFT));

        container.add(group);
        container.add(group2);

        JFrame window = new JFrame("Form");
        window.add(container);

        JButton invia= new JButton("invia");
        invia.setSize(30,10);
        invia.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        Scriviword nuovofile=new Scriviword("c:/alessandro",nome.getText(), cognome.getText(), p_iva.getText(), c_f.getText(), via.getText(), civico.getText(), cap.getText(), citta.getText(), provincia.getText(),mail.getText());
        inserimentoUtente ins=new inserimentoUtente();
        try {

            ins.inserisciUtente(nome.getText(), cognome.getText(), p_iva.getText(), c_f.getText(), via.getText(), civico.getText(), cap.getText(), citta.getText(), provincia.getText(),mail.getText());
        } catch (Exception e2) {
            // TODO Auto-generated catch block
            e2.printStackTrace();
        }
        try {
            nuovofile.creaDoc();
        } catch (FileNotFoundException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        }});
        JPanel panel= new JPanel();
        panel.add(invia);

        window.add(panel,BorderLayout.SOUTH);
        window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        window.pack();
        window.setVisible(true);
        /*riportata qui */


}
});






JPanel pannellino=new JPanel();

pannellino.add(vai);
window1.add(pannellino,BorderLayout.SOUTH);
window1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
window1.pack();
window1.setVisible(true);
package-inserimentoDati;
导入java.awt.*;
导入java.awt.event.*;
导入java.io.FileNotFoundException;
导入java.io.IOException;
导入java.util.LinkedList;
导入javax.swing.*;
导入javax.swing.text.html.MinimalHTMLWriter;
公开课秋千{
公共静态void main(字符串[]args){
invokeLater(新的Runnable(){
公开募捐{
start();
}
});
}
私有静态void start(){
最终JPanel nprodlabel=新JPanel();
nprodlabel.add(新的JLabel(“数字产品采集”);
JPanel prodfield=新的JPanel();
FocusListener focusListener3=新的FocusAdapter(){
@覆盖公共无效焦点(FocusEvent e){
JTextField campox=(JTextField)e.getSource();
campox.selectAll();
}
};
最终JTextField产品=新的JTextField(3);
prodfield.add(prod);
Box groupprod=Box.createHorizontalBox();
groupprod.add(nprodlabel);
groupprod.add(prodfield);
JPanel prodcontainer=newjpanel(newflowlayout(FlowLayout.LEFT));
prodcontainer.add(groupprod);
JFrame window1=新JFrame(“prodotti”);
window1.添加(prodcontainer);
JButton vai=新JButton(“vai”);
vai.setSize(10,10);
vai.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e1){
int g=Integer.parseInt(prod.getText());
最终JPanel标签=新JPanel(新网格布局(10,1));
添加(新的JLabel(“Nome”);
添加(新JLabel(“Cognome”);
添加(新的JLabel(“P.Iva”);
添加(新的JLabel(“Codice Fiscale”);
标签。添加(新的JLabel(“Via”));
标签。添加(新的JLabel(“n°”));
标签。添加(新标签(“Cap”);
标签。添加(新的JLabel(“Citt”);
标签。添加(新的JLabel(“Provincia”);
添加(新的JLabel(“邮件”));
JPanel字段=新的JPanel(新的GridLayout(10,1));
FocusListener FocusListener=new FocusAdapter(){
@覆盖公共无效焦点(FocusEvent e){
JTextField campo=(JTextField)e.getSource();
campo.selectAll();
}
};
最终JTextField nome=新JTextField(15);
最终JTextField cognome=新JTextField(15);
最终JTextField p_iva=新JTextField(11);
最终JTextField c_f=新JTextField(15);
最终JTextField via=新JTextField(30);
最终JTextField civico=新JTextField(5);
最终JTextField citta=新的JTextField(30);
最终JTextField上限=新的JTextField(8);
最终JTextField provincia=新的JTextField(2);
最终JTextField邮件=新JTextField(20);
字段。添加(nome);
fields.add(cognome);
字段。添加(p_iva);
字段。添加(c_f);
字段。添加(通过);
字段。添加(civico);
字段。添加(cap);
字段。添加(citta);
字段。添加(省);
字段。添加(邮件);
Box group=Box.createHorizontalBox();
添加(标签);
添加组(字段);
JPanel容器=新的JPanel(新的FlowLayout(FlowLayout.LEFT));
容器。添加(组);
JFrame窗口=新JFrame(“表格”);
添加(容器);
JButton invia=新JButton(“invia”);
因维亚设定尺寸(30,10);
invia.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件e){
Scriviword nuovofile=新Scriviword(“c:/alessandro”、nome.getText()、cognome.getText()、p_iva.getText()、c_f.getText()、via.getText()、civico.getText()、cap.getText()、citta.getText()、provincia.getText()、mail.getText());
INSERIMENTOUTETE ins=新INSERIMENTOUTETE();
试一试{
inserisciente(nome.getText()、cognome.getText()、p_iva.getText()、c_f.getText()、via.getText()、civico.getText()、cap.getText()、citta.getText()、provincia.getText()、mail.getText());
}捕获(异常e2){
//TODO自动生成的捕捉块
e2.printStackTrace();
}
试一试{
nuovofile.creaDoc();
}捕获(FileNotFoundException e1){
//TODO自动生成的捕捉块
e1.printStackTrace();
}捕获(IOE1异常){
//TODO自动生成的捕捉块
e1.printStackTrace();
}
}});
JPanel面板=新的JPanel();
增补(因维亚);
添加(面板,边框布局。南);
window.setDefaultCloseOperation(JFrame.DISPOSE\u ON\u CLOSE);
window.pack();
window.setVisible(true);
最终JPanel标签2=新JPanel(新网格布局(g,1));
JPanel fields2=新的JPanel(新的网格布局(g,1));
int i=1;
//JTextField[]cod=新的JTextField[g];

while(我也放置stacktrace,并指出异常发生在哪一行)为了获得更好的帮助,如果a.m.JComponents是在运行时添加的,请尽快发布一个简短的、可运行的、可编译的、带有清晰描述的内容。你是指while循环吗?问题是我想获取在JTextField“cod”中输入的数据但我有g>1个名为“cod”的文本字段所以我无法获取所有数据。早上好,谢谢你的帮助!我必须获取文本并发送到一个数据库,在那里我必须与数据库数据进行比较,并获取该行的所有其他数据。抱歉,我不明白如何使用它。我想要什么东西,但现在我看不到表单中的文本字段。我想我必须给你所有的代码o了解
package inserimentoDati;
import java.awt.*;
import java.awt.event.*;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.LinkedList;

import javax.swing.*;
import javax.swing.text.html.MinimalHTMLWriter;
public class swing {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
start();

}
});
}
private static void start() {


final JPanel nprodlabel = new JPanel();
nprodlabel.add(new JLabel("numero prodotti acquistati"));
JPanel prodfield = new JPanel();
FocusListener focusListener3 = new FocusAdapter() {
@Override public void focusGained(FocusEvent e) {
JTextField campox = (JTextField)e.getSource();
campox.selectAll();
}
};
final JTextField prod= new JTextField(3);
prodfield.add(prod);

Box groupprod = Box.createHorizontalBox();
groupprod.add(nprodlabel);
groupprod.add(prodfield);
JPanel prodcontainer = new JPanel(new FlowLayout(FlowLayout.LEFT));
prodcontainer.add(groupprod);

JFrame window1 = new JFrame("prodotti");
window1.add(prodcontainer);

JButton vai= new JButton("vai");

vai.setSize(10,10);
vai.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e1) {
    int g=Integer.parseInt(prod.getText());

    final JPanel labels = new JPanel(new GridLayout(10, 1));
    labels.add(new JLabel("Nome"));
    labels.add(new JLabel("Cognome"));
    labels.add(new JLabel("P.Iva"));
    labels.add(new JLabel("Codice Fiscale"));
    labels.add(new JLabel("Via"));
    labels.add(new JLabel("n°"));
    labels.add(new JLabel("Cap"));
    labels.add(new JLabel("Città"));
    labels.add(new JLabel("Provincia"));
    labels.add(new JLabel("mail"));
    JPanel fields = new JPanel(new GridLayout(10, 1));
    FocusListener focusListener = new FocusAdapter() {
    @Override public void focusGained(FocusEvent e) {
    JTextField campo = (JTextField)e.getSource();
    campo.selectAll();
    }
    };
    final JTextField nome= new JTextField(15);
    final JTextField cognome= new JTextField(15);
    final JTextField p_iva= new JTextField(11);
    final JTextField c_f= new JTextField(15);
    final JTextField via= new JTextField(30);
    final JTextField civico=new JTextField(5);
    final JTextField citta= new JTextField(30);
    final JTextField cap= new JTextField(8);
    final JTextField provincia= new JTextField(2);
    final JTextField mail=new JTextField(20);

    fields.add(nome);
    fields.add(cognome);
    fields.add(p_iva);
    fields.add(c_f);
    fields.add(via);
    fields.add(civico);
    fields.add(cap);
    fields.add(citta);
    fields.add(provincia);
    fields.add(mail);



    Box group = Box.createHorizontalBox();
    group.add(labels);
    group.add(fields);



    JPanel container = new JPanel(new FlowLayout(FlowLayout.LEFT));
    container.add(group);

    JFrame window = new JFrame("Form");
    window.add(container);
    JButton invia= new JButton("invia");
    invia.setSize(30,10);
    invia.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    Scriviword nuovofile=new Scriviword("c:/alessandro",nome.getText(),                 cognome.getText(), p_iva.getText(), c_f.getText(), via.getText(), civico.getText(), cap.getText(), citta.getText(), provincia.getText(),mail.getText());
    inserimentoUtente ins=new inserimentoUtente();
    try {
        ins.inserisciUtente(nome.getText(), cognome.getText(), p_iva.getText(), c_f.getText(), via.getText(), civico.getText(), cap.getText(), citta.getText(), provincia.getText(),mail.getText());
    } catch (Exception e2) {
        // TODO Auto-generated catch block
        e2.printStackTrace();
    }
    try {
        nuovofile.creaDoc();
    } catch (FileNotFoundException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    }});
    JPanel panel= new JPanel();
    panel.add(invia);

    window.add(panel,BorderLayout.SOUTH);
    window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    window.pack();
    window.setVisible(true);


    final JPanel labels2 = new JPanel(new GridLayout(g, 1));
    JPanel fields2 = new JPanel(new GridLayout(g, 1));
    int i=1;

    //JTextField[] cod=new JTextField[g];
    while (i<=g){
        System.out.println(g);
        labels2.add(new JLabel("cod.prodotto "+i));

        //cod[i]= new JTextField(8);
        JTextField cod=new JTextField(8);
        FocusListener focusListener2 = new FocusAdapter() {
            @Override public void focusGained(FocusEvent e) {
            JTextField campo2 = (JTextField)e.getSource();
            campo2.selectAll();
            }
            };

            fields2.add(cod);

        i++;

    }





        Box group = Box.createHorizontalBox();
        group.add(labels);
        group.add(fields);
        Box group2 = Box.createHorizontalBox();
        group2.add(labels2);
        group2.add(fields2);



        JPanel container = new JPanel(new FlowLayout(FlowLayout.LEFT));

        container.add(group);
        container.add(group2);

        JFrame window = new JFrame("Form");
        window.add(container);

        JButton invia= new JButton("invia");
        invia.setSize(30,10);
        invia.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
        Scriviword nuovofile=new Scriviword("c:/alessandro",nome.getText(), cognome.getText(), p_iva.getText(), c_f.getText(), via.getText(), civico.getText(), cap.getText(), citta.getText(), provincia.getText(),mail.getText());
        inserimentoUtente ins=new inserimentoUtente();
        try {

            ins.inserisciUtente(nome.getText(), cognome.getText(), p_iva.getText(), c_f.getText(), via.getText(), civico.getText(), cap.getText(), citta.getText(), provincia.getText(),mail.getText());
        } catch (Exception e2) {
            // TODO Auto-generated catch block
            e2.printStackTrace();
        }
        try {
            nuovofile.creaDoc();
        } catch (FileNotFoundException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        }});
        JPanel panel= new JPanel();
        panel.add(invia);

        window.add(panel,BorderLayout.SOUTH);
        window.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        window.pack();
        window.setVisible(true);
        /*riportata qui */


}
});






JPanel pannellino=new JPanel();

pannellino.add(vai);
window1.add(pannellino,BorderLayout.SOUTH);
window1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
window1.pack();
window1.setVisible(true);