¿Como crear varios campos de texto dsde un botón?
Hola, tengo una duda, como puedo hacer que cuando introduzcan un número por ejemplo: 5
y presionen un botón, se creen 5 JTextField en mi frame??
he estado dandole vueltas y no se cómo podría hacerse :(
espero me puedan ayudar
- Inicie sesión o regístrese para enviar comentarios
Prueba con esto: public
Prueba con esto:
private JFrame f;
private JButton boton;
private JPanel panelCampos;
private JTextField texto;
public Textos() {
f = new JFrame("JAJ");
f.getContentPane().setLayout(new FlowLayout());
boton = new JButton("Generar");
boton.addActionListener(this);
panelCampos = new JPanel();
panelCampos.setLayout(new GridLayout(5,1));
texto = new JTextField("N° de campos:");
f.add(texto);
f.add(boton);
f.add(panelCampos);
f.setVisible(true);
f.setSize(200,150);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent arg0) {
panelCampos.removeAll();
panelCampos.validate();
int numeroCapturado = Integer.parseInt(texto.getText());
JTextField campos [] = new JTextField[numeroCapturado];
for(int i=0; i<campos.length; i++) {
campos[i] = new JTextField("Campo "+ i);
panelCampos.add(campos[i]);
}
f.validate();
}
public static void main(String aer[]) {
new Textos();
}
}
Saludos.
Muchisimas gracais
Muchisimas gracias amigo! ese era la solución, matrices de componentes!!
hola!!1 necesito ayuda
veo tu codigo y quisiera aplicarlo para generar textfields desde un boton en un 1er file no desde el mismo
se podra??
1er frame perdon
1er frame perdon
Puedes pasarlo como parametro
Puedes pasarlo como parametro al constructor de tu segundo frame, algo como (en 2 funciones para que coincida con lo que hizo @Jose Manuel):
private JFrame f;
private JButton boton;
private JPanel panelCampos;
private JTextField texto;
public impTexts(int numOfTexts) {
f = new JFrame("JAJ");
f.getContentPane().setLayout(new FlowLayout());
boton = new JButton("Generar");
boton.addActionListener(this);
panelCampos = new JPanel();
panelCampos.setLayout(new GridLayout(5,1));
texto = new JTextField("N° de campos:");
f.add(texto);
f.add(boton);
f.add(panelCampos);
f.setVisible(true);
f.setSize(200,150);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addTexts(numOfTexts);
}
public void addTexts(int nT) {
panelCampos.removeAll();
panelCampos.validate();
int numeroCapturado = Integer.parseInt(texto.getText());
JTextField campos [] = new JTextField[nT];
for(int i=0; i<campos.length; i++) {
campos[i] = new JTextField("Campo "+ i);
panelCampos.add(campos[i]);
}
f.validate();
}
}
y en tu primer frame haces algo como:
Frame1(){ }
public static void main(String aer[]) {
inmTexts IT = new impTexts(/*[Numero de Texts]*/);
IT.setVisible(true);
}
}