Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/04/2016, 11:12
Avatar de DanX03
DanX03
 
Fecha de Ingreso: septiembre-2007
Ubicación: México D.F.
Mensajes: 148
Antigüedad: 17 años, 2 meses
Puntos: 3
Sumatoria de valores numericos en campos autogenerados

Hola que tal, tengo el sigueinte problema:

En mi aplicacion tengo un campo el cual cuando cambia de valor, me genera n cantidad de campos nuevos de acuerdo al valor que se ingreso, mi pregunta es ¿cómo puedo sumar los valores que se ingresen en dichos campos?

Estoy utilizando el siguiente codigo para generar los campos:

Código java:
Ver original
  1. private void txtnumeroFocusLost(java.awt.event.FocusEvent evt) {                                    
  2.         int numero=Integer.parseInt(txtnumero.getText()),conteo;
  3.         for(conteo=1;conteo<=numero;conteo++)
  4.         {   mi_panel.Mi_Componente();}
  5.     }

Los campos estan en un panel fuera de la form principal, este es el codigo que los contiene:

Código java:
Ver original
  1. public jpComponente( int index ) {
  2.         initComponents();
  3.         //JPanel
  4.         setBorder(javax.swing.BorderFactory.createEtchedBorder(javax.swing.border.EtchedBorder.RAISED));
  5.         this.setSize(230, 30);
  6.         this.setVisible(true);
  7.         //se agrega un comando al boton
  8.         this.btn.setActionCommand("key_" + index);
  9. }

y este es el codigo que escucha los eventos

Código java:
Ver original
  1. import java.awt.Color;
  2. import java.awt.FlowLayout;
  3. import java.awt.event.ActionEvent;
  4. import java.awt.event.ActionListener;
  5. import java.util.HashMap;
  6. import java.util.Iterator;
  7. import java.util.Map;
  8. import javax.swing.BorderFactory;
  9. import javax.swing.JOptionPane;
  10. import javax.swing.JPanel;
  11.  
  12. public class jcPanel extends JPanel implements ActionListener {
  13.  
  14.     private int index = 1;
  15.     //Nos sirve para almacenar a los objetos creados
  16.     private Map nota = new HashMap();
  17.  
  18.     public jcPanel()
  19.     {
  20.         this.setSize(300, 400);
  21.         this.setVisible(true);
  22.         this.setBorder(BorderFactory.createLineBorder( Color.BLACK ));
  23.         this.setLayout( new FlowLayout() );
  24.     }
  25.  
  26.     public void Mi_Componente()
  27.     {        
  28.         //instancia nueva a componente
  29.         jpComponente jpc = new jpComponente(index);
  30.         jpc.btn.addActionListener(this);//escucha eventos
  31.         this.add(jpc);//se añade al jpanel
  32.         this.validate();
  33.         //se añade al MAP
  34.         this.nota.put("key_" + index, jpc );
  35.         //se incrementa contador de componentes
  36.         index++;
  37.     }
  38.  
  39.     public void actionPerformed(ActionEvent e) {
  40.         //se obtiene el comando ejecutado
  41.         String comando = e.getActionCommand();
  42.         //se recorre el MAP
  43.         Iterator it = nota.entrySet().iterator();
  44.         while (it.hasNext()) {
  45.             Map.Entry entry = (Map.Entry)it.next();
  46.             //se obtiene el KEY -> identificador unico
  47.             String itm = entry.getKey().toString();
  48.             //si comando de componente es igual a comando pulsado
  49.             if( itm.equals(comando))
  50.             {
  51.                 //se recupera el contenido del JTextfield
  52.                 String name = ((jpComponente) entry.getValue()).txtName.getText();
  53.                 //mostramos resultado
  54.                 JOptionPane.showMessageDialog(null, "Se presiono boton " + itm + " \n Hola " + name);
  55.             }
  56.         }
  57.     }
  58.  
  59. }