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();
}
}

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

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?.

Imagen de neko069

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 correspondiente

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*/

                   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