Foros del Web » Programación para mayores de 30 ;) » Java »

Concatena 2 veces una cadena

Estas en el tema de Concatena 2 veces una cadena en el foro de Java en Foros del Web. Hola a todos, tengo el siguiente codigo, el problema es que me concatena 2 veces el caracter que presiono. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Java: Ver original ...
  #1 (permalink)  
Antiguo 30/10/2014, 21:54
 
Fecha de Ingreso: febrero-2014
Mensajes: 107
Antigüedad: 10 años, 1 mes
Puntos: 0
Concatena 2 veces una cadena

Hola a todos, tengo el siguiente codigo, el problema es que me concatena 2 veces el caracter que presiono.

Código Java:
Ver original
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import static java.lang.Math.*;
  4. import javax.swing.*;
  5.  
  6.  
  7.  
  8.  
  9. public class Interfaz extends JFrame {
  10.  private JPanel p1; JButton []boton; JTextField t1,t2,t3; String cad="";
  11.     Interfaz(){
  12.         super("Calculadora");
  13.         boton=new JButton[16];
  14.         setLayout(new BorderLayout());
  15.         t1=new JTextField();
  16.         add(t1,BorderLayout.NORTH);
  17.         //add(t3,BorderLayout.EAST);
  18.         p1=new JPanel();
  19.         add(p1,BorderLayout.CENTER);
  20.         p1.setLayout(new GridLayout(4,4));
  21.        
  22.         char[] n={'7','8','9','+','4','5','6','-','1','2','3','/','0','c','=','*'};
  23.         for(int i=0;i<16;i++){
  24.             p1.add(boton[i]=new JButton(Character.toString(n[i])));
  25.             boton[i].addActionListener(new Responder());
  26.         }
  27.         for(int i=0;i<16;i++){
  28.            
  29.             boton[i].addActionListener(new Responder());
  30.         }
  31.        
  32.        
  33.         /*
  34.         add(jl1=new JLabel("X"));
  35.         add(jl1=new JLabel("Y"));
  36.         add(jl1=new JLabel("Resultado"));
  37.        
  38.         add(t1=new JTextField());
  39.         add(t2=new JTextField());
  40.         add(t3=new JTextField());
  41.         t3.setEditable(false);
  42.        
  43.         a.addActionListener(new Responder());
  44.         b.addActionListener(new Responder());
  45.         c.addActionListener(new Responder());
  46.         d.addActionListener(new Responder());
  47.         e.addActionListener(new Responder());
  48.         f.addActionListener(new Responder());
  49.         g.addActionListener(new Responder());
  50.         h.addActionListener(new Responder());
  51.         i.addActionListener(new Responder());
  52.        
  53.         /*JButton boton=new JButton();
  54.         add(boton);
  55.         boton.addActionListener(new OyenteBoton());*/
  56.        
  57.        
  58.         setSize(400,500);
  59.         setVisible(true);
  60.         setDefaultCloseOperation(EXIT_ON_CLOSE);
  61.     }
  62.    
  63.    
  64.     public static void main(String args[]){
  65.         Interfaz a=new Interfaz();
  66.     }
  67.    
  68.     class Responder implements ActionListener{
  69.    
  70.     public void actionPerformed(ActionEvent e){
  71.         //Float aa=new Float(t1.getText());
  72.         //Float bb=new Float(t2.getText());
  73.         //float cc=0;
  74.         String ss=(String)e.getActionCommand();
  75.        
  76.         if(ss.equals("+")){
  77.             cad=cad+"+";
  78.             t1.setText(cad);
  79.             System.out.println(cad);
  80.         }
  81.         if(ss.equals("-")){
  82.            // cc=aa-bb;
  83.         }
  84.         if(ss.equals("*")){
  85.            // cc=aa*bb;
  86.         }
  87.         if(ss.equals("/")){
  88.           //  cc=aa/bb;
  89.         }
  90.         if(ss.equals("1")){
  91.             cad=cad+"1";
  92.         }
  93.         if(ss.equals("2")){
  94.             cad=cad+"2";
  95.         }
  96.         if(ss.equals("3")){
  97.             cad=cad+"3";
  98.         }
  99.         if(ss.equals("4")){
  100.             cad=cad+"4";
  101.         }
  102.         if(ss.equals("5")){
  103.             cad=cad+"5";
  104.         }
  105.         if(ss.equals("6")){
  106.             cad=cad+"6";
  107.         }
  108.         if(ss.equals("7")){
  109.             cad=cad+"7";
  110.         }
  111.         if(ss.equals("8")){
  112.             cad=cad+"8";
  113.         }
  114.         if(ss.equals("9")){
  115.             cad=cad+"9";
  116.         }
  117.         if(ss.equals("0")){
  118.             cad=cad+"0";
  119.         }
  120.         if(ss.equals("c")){
  121.             cad="";
  122.        
  123.         }
  124.         t1.setText(cad);
  125.     }
  126. }
  127. }
  #2 (permalink)  
Antiguo 31/10/2014, 00:45
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: Concatena 2 veces una cadena

Buenas,

No lo he probado, pero me da la sensación de que se puede debe a que, por alguna extraña razón, añades el mismo listener dos veces:
Código Java:
Ver original
  1. for(int i=0;i<16;i++){
  2.             p1.add(boton[i]=new JButton(Character.toString(n[i])));
  3.             boton[i].addActionListener(new Responder());
  4.         }
  5.         for(int i=0;i<16;i++){
  6.            
  7.             boton[i].addActionListener(new Responder());
  8.         }

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 31/10/2014, 16:18
 
Fecha de Ingreso: febrero-2014
Mensajes: 107
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: Concatena 2 veces una cadena

Si man tenias razon, muchas gracias
Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

No lo he probado, pero me da la sensación de que se puede debe a que, por alguna extraña razón, añades el mismo listener dos veces:
Código Java:
Ver original
  1. for(int i=0;i<16;i++){
  2.             p1.add(boton[i]=new JButton(Character.toString(n[i])));
  3.             boton[i].addActionListener(new Responder());
  4.         }
  5.         for(int i=0;i<16;i++){
  6.            
  7.             boton[i].addActionListener(new Responder());
  8.         }

Un saludo

Etiquetas: cadenas, interfaz, jtextfield
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:30.