Otra Ayudita Con Swing, JOptionPane y Vectores
La Variable "NMay" Me da 0 Cuando me debería dar otro número diferente (para ser exactos el número mayor que se almacena en el Vector "Num")... No se en que me falla el código para que no me muestre el resultado que quiero... Ayuda Por Favor.
Codigo:
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Vectores2 extends JFrame implements ActionListener {
//Declaro los Componentes y las Variables
//Componentes
JLabel jlblPuntos;
JLabel jlblTitulo;
JLabel jlblNumeros;
JButton jbtnCrearVector;
JButton jbtnNumeros;
JButton jbtnPunto1;
//Variables
String Numer;
int N,i,j;
int NumV;
int Imp;
int ord;
int aux;
int NMay,NMen,NumP,NumI,SumI;
public Vectores2() {
super("Puntos Taller");
super.setSize(640,480);
super.setLayout(null);
super.setLocationRelativeTo(null);
setVisible(true);
jlblTitulo=new JLabel("Taller Vectores");
jlblTitulo.setBounds(265,20,100,25);
this.add(jlblTitulo);
jbtnCrearVector=new JButton("Crear Vector");
jbtnCrearVector.setBounds(237,60,150,25);
jbtnCrearVector.addActionListener(this);
this.add(jbtnCrearVector);
jlblNumeros=new JLabel("Por favor Ingresar Números");
jlblNumeros.setBounds(240,100,170,25);
this.add(jlblNumeros);
jbtnNumeros=new JButton("Ingresar Números");
jbtnNumeros.setBounds(237,140,150,25);
jbtnNumeros.addActionListener(this);
this.add(jbtnNumeros);
jlblPuntos=new JLabel("Puntos del Taller:");
jlblPuntos.setBounds(265,180,100,25);
this.add(jlblPuntos);
jbtnPunto1=new JButton("Punto 1");
jbtnPunto1.setBounds(50,220,150,25);
jbtnPunto1.addActionListener(this);
this.add(jbtnPunto1);
this.repaint();
}
public void actionPerformed(ActionEvent ev){
if(ev.getSource()==jbtnCrearVector){
N=Integer.parseInt(JOptionPane.showInputDialog("Ingrese la Cantidad de Datos"));
/* Se Ingresa y Se Convierte el Dato en Entero y también se crea el vector con N
*posiciones*/
}
int[] Num=new int [N];
if(ev.getSource()==jbtnNumeros){
for(i=0;i<N;i++){
int NumV=Integer.parseInt(JOptionPane.showInputDialog("Ingrese Número"));
Num[i]=NumV;
System.out.print(Num[i]);
}
}
NMay=0;
NMen=1000;
NumP=0;
NumI=0;
SumI=0;
for(i=0;i<N;i++){
if (Num[i]>NMay){
NMay=Num[i];
}
}
if(ev.getSource()==jbtnPunto1){
System.out.println(NMay);
JOptionPane.showMessageDialog(null, "El Número Mayor es:"+NMay);
}
}
public static void main (String[] args) {
Vectores2 v2 = new Vectores2();
}
}
- Inicie sesión o regístrese para enviar comentarios
Inicialización de arreglo
Lo que sucede es que estás inicializando tu arreglo Num, cada que se presiona un botón ( int[] Num=new int [N]; ). Al inicializarse cada que se da click en cualquier boton todos los elementos del arreglo son 0's por eso es el valor que te devuelve al final.
Deberías poner la declaración de Num global y sólo inicializarlo cuando se presiona el botón de crear Vector.
Entonces Donde Debo Inicializar
Entonces Amigo... Como o en que parte exactamente debo inicializar el vector?.
Debajo de tu comentario :
Debajo de tu comentario :
//Variables
ahí es donde estás colocando tus variables globales.Así no me Funciona
Lastimosamente de esa forma no me funciona... Ademas ahí estaría declarando el vector mas no iniciándolo.
Aunque si esta mal lo que digo entonces perdóname, apenas estoy empezando a programar y aún no tengo muy claro algunos conceptos, así que perdón por mi ignorancia.
Conceptos Básicos
Saludos, creo que mi comentario no te fue de suficiente ayuda porque te falta conocer conceptos básicos.
La declaración (únicamente la declaración) va donde te indica neko069. Es decir esto;
int[] Num;
y la inicialización va dentro del if del botón correspondienteN=Integer.parseInt(JOptionPane.showInputDialog("Ingrese la Cantidad de Datos"));
/* Se Ingresa y Se Convierte el Dato en Entero y también se crea el vector con N
*posiciones*/
Num=new int [N];
}
Te dejo esté link para que le des una leida http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_Java/Variables
Los conceptos que deberías tener claros y saber diferenciar son declaración de variables e inicialización de variables