Java - agregar un elemento a un arreglo por medio de un boton

 
Vista:
Imágen de perfil de selene
Val: 9
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

agregar un elemento a un arreglo por medio de un boton

Publicado por selene (3 intervenciones) el 19/08/2020 18:23:15
Buenos dias

Tengo un formulario con 3 campos de texto, el primer campo agrega un numero, el segundo campo una posición y el tercer campo muestra el resultado, aparte tiene un boton "guardar" que debe agregar el elemento del primer campo (numero) en la posición que se escribió en el segundo campo (posición) y después de guardarlo en el campo de resultado debe mostrar los elementos de la cadena, la parte del código que agrega el elemento a la cadena es este:

1
2
3
4
5
6
7
8
9
10
int [] numeros = new int [10];
 
n = Interger.parseInt(numero.getText());
p = Integer.parseInt(posicion.getText());
 
if (p < 10) {
 
numeros[p] = n;
 
}

Despues con un for recorro la cadena para mostrar el resultado (No pongo esa parte del codigo ni la parte donde creo el formulario para no hacer extenso esto)

EL problena es que cuando ingreso un numero y una posicion me muestra el arreglo con ese numero agregado, pero cuando ingreso nuevo numero y nueva posicion borra ese elemento anterior, es decir que pasa esto:

Si pongo en numero un 3 y en posicion un 0, me sale como resultado lo siguiente:
3,0,0,0,0,0,0,0,0,0

Si despues de eso pongo un numero 5 y en posicion pongo 1 me sale de resultado esto:
0,5,0,0,0,0,0,0,0,0

y lo qu equiero es qu evaya agregando elementos osea que si hiciera lso pasos anteriores quisiera que el resultado me saliera asi: 3,5,0,0,0,0,0,0,0,0 pero al agregar el 5 borra el 3.

QUisiera saber que estoy haciendo mal para que no me agrege bien los datos al arreglo.

De antemano gracias por la atencion prestada

Saludos

Selene
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Sandro
Val: 392
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

agregar un elemento a un arreglo por medio de un boton

Publicado por Sandro (166 intervenciones) el 19/08/2020 22:42:33
en la definición del programa esta mal, por que cuando defines el arreglo supongo esta dentro del for, por ejemplo:

1
2
3
4
5
6
7
for ( int i=0;i<10;i++){
int [] numeros = new int [10];
.
.
.
 
}

la definición del campo debe de estar fuera del for o do asi:
1
2
3
4
5
6
int [] numeros = new int [10];
for ( int=0;i<10;i++){
.
.
.
}

no somo adivinos, pon el codigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Selene
Val: 9
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

agregar un elemento a un arreglo por medio de un boton

Publicado por Selene (3 intervenciones) el 20/08/2020 05:21:56
Hola, éste es mi codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
 
 
/**
 *
 * @author Edna
 */
public class ArregloUnidimensional extends Applet implements ActionListener {
 
    //Creamos los botones y campos de texto, y un panel
    int [] numeros = null;
    TextField resultado, numero, posicion;
    Button agregar, borrar, limpiar, consultar, promedio;
    Panel p1, p2, p3;
    Label res, num, pos;
    int n, p;
    String listaNumeros = "";
    double pro = 0;
 
    public  ArregloUnidimensional() {
        //Realizacion de distribucion del espacion usando Gridlayout, BordeLayout y paneles que contengan la grilla
        setLayout(new BorderLayout());
        p1 = new Panel();
        p2 = new Panel(new GridLayout(2,3,10,10));
        p3 = new Panel();
 
        //Creamos los labels para nombrar los campos
        res = new Label ("Resultado");
        num = new Label ("Número");
        pos = new Label ("Posición");
 
        //Creamos los campos de texto
        resultado = new TextField(30);
        numero = new TextField(10);
        posicion = new TextField(10);
 
        //Creamos los botones y les damos nombre
        agregar = new Button("Agregar");
        borrar = new Button("Borrar");
        limpiar = new Button("Limpiar");
        consultar = new Button("Consultar");
        promedio = new Button("Promedio");
 
        //Agregamos campos de texto al primer panel
        p1.add(num);
        p1.add(numero);
        p1.add(pos);
        p1.add(posicion);
 
        //Agregamos botones al segundo panel
        p2.add(agregar);
        p2.add(borrar);
        p2.add(limpiar);
        p2.add(consultar);
        p2.add(promedio);
 
        //Agregamos campo al tercer panel
        p3.add(res);
        p3.add(resultado);
 
        //Agregar ActionListener a los botones
        agregar.addActionListener(this);
        borrar.addActionListener(this);
        limpiar.addActionListener(this);
        consultar.addActionListener(this);
        promedio.addActionListener(this);
 
        //Distribuir texto y grillas
        add(p3, BorderLayout.CENTER);
        add(p1, BorderLayout.NORTH);
        add(p2, BorderLayout.SOUTH);
    }
 
    public void limpiaTexto() {
 
        numero.setText("");
        posicion.setText("");
        resultado.setText("");
    }
 
    public int[] agregaDatos(){
 
        n = Integer.parseInt(numero.getText());
        p = Integer.parseInt(posicion.getText());
 
        if (p < 10) {
 
            numeros[p] = n;
 
        }
 
        return numeros;
    }
 
    public int[] borrarDatos(){
 
        p = Integer.parseInt(posicion.getText());
 
        if (p < 10) {
 
            numeros[p] = 0;
 
        }
 
        return numeros;
    }
 
    public void Consultar() {
 
        listaNumeros = "";
 
        for (int i = 0; i < numeros.length; i++) {
 
            listaNumeros += numeros[i] + ",";
        }
 
        resultado.setText(listaNumeros);
 
    }
 
    @Override
    public void actionPerformed(ActionEvent e) {
 
        //Declaracion de variables
        //Definicion de arreglo
        numeros = new int[10];
 
        //Captura de valores en el campo numero y posicion
 
        resultado.setEditable(false); //Evita que se pueda editar el campo resultado
 
 
        //Usamos condicional para ejecutar la accion seleccionada en los botones
 
        if (e.getSource()== agregar){
 
            agregaDatos();
            limpiaTexto();
            Consultar();
 
        }
 
        if (e.getSource()== borrar){
 
            borrarDatos();
 
        }
        if (e.getSource()== limpiar){
 
            numeros = null;
        }
        if (e.getSource()== consultar){
 
            Consultar();
 
        }
        if (e.getSource()== promedio){
 
            pro = 0;
 
            for (int i = 0; i < numeros.length; i++) {
 
                pro += numeros[i];
            }
            pro = pro/numeros.length;
 
            listaNumeros = pro+"";
            resultado.setText(listaNumeros);
 
        }
    }
}

como les decía, no logro que el array me guarde los datos que ingreso para poder consultarlos incluso después de agregar varios datos nuevos, tanto posición como número.

Adjunto también la imagen de mi applet

applet
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Sandro
Val: 392
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

agregar un elemento a un arreglo por medio de un boton

Publicado por Sandro (166 intervenciones) el 20/08/2020 17:48:43
la instrucción de la linea 128, muévela a la linea 13
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Selene
Val: 9
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

agregar un elemento a un arreglo por medio de un boton

Publicado por Selene (3 intervenciones) el 20/08/2020 18:23:34
Ya lo hice y funciono muchas gracias por tu ayuda. Un saludo. Ya la duda quedo resuelta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar