[Resolvido] Somar numeros positivos e negativos

O programa tem que somar numeros positivos e negativos e como saida somar ambos separadamente não sei onde está o erro. código!

  public static void main (String [] args){

            int n = 0, soma = 0,a = 0;
             String  num;


                num = JOptionPane.showInputDialog("digite numeros ou 0 para sair ");

                n = Integer.parseInt(num);

                    while (n != 0 )
                      {
                     soma+= n;
                    
                  num = JOptionPane.showInputDialog("digite numeros ou 0 para sair ");

                n = Integer.parseInt(num);}
                 
                

            
             if (n > 0){
                 soma+=n;
                 
                num = JOptionPane.showInputDialog("digite numeros ou 0 para sair ");

                n = Integer.parseInt(num);
                 
                 
                
             }
             
             else if (n < 0);{


                 
             num = JOptionPane.showInputDialog("digite numeros ou 0 para sair ");

                n = Integer.parseInt(num);
             
                
                 
             }


                    

                JOptionPane.showMessageDialog(null," numeros positivos " +soma+ " Numeros negativos " +soma);
           }

}

Tente esse código:

    public static void main(String[] args) {
        int somaP = 0, somaN = 0, numAux;

        String num;

        do {
            num = JOptionPane.showInputDialog("digite numeros ou 0 para sair ");
            numAux = Integer.parseInt(num);

            if(numAux > 0) {
                somaP += numAux;
            } else if(numAux < 0) {
                somaN += numAux;
            }

        } while(numAux != 0);
        
        JOptionPane.showMessageDialog(null, " numeros positivos " + somaP + " Numeros negativos " + somaN);
    }

Se responda uma coisa, porque a soma dos números positivos é igual a soma dos números negativos:

JOptionPane.showMessageDialog(null," numeros positivos " +soma+ " Numeros negativos " +soma); 

Outra coisa, e se o cara digitar algo que não seja um número? (tente o tratamento de exceções)

Uma outra forma de responder este exercicio:

[code]import static javax.swing.JOptionPane.*;

public class Ex5{
public static void main (String [] args){
int somanegativo = 0, somapositivo = 0;
while(true){
String num = showInputDialog(“digite um numero”);
if(num == null)System.exit(0);
try{
int valor = Integer.parseInt(num);
if(valor == 0){
showMessageDialog(null, “Valor Inválido”, “Erro”, 0);
continue;
}
if(valor < 0)somanegativo += valor;
else somapositivo += valor;
}catch(NumberFormatException nfe){
showMessageDialog(null, "Erro: " + nfe.getClass()
+ "\nMensagem: " + nfe.getMessage(), “Erro”, 0);
continue;
}
num = showInputDialog(“Deseja continuar?(s/n)”);
if(num.equalsIgnoreCase(“s”))continue;
break;
}
showMessageDialog(null,"Soma positivos: " + somapositivo + "\nSoma Negativos: " + somanegativo);
}
}
[/code]

Vlw amigo Evandro era isto mesmo que queria, não tinha que somar igual era porque não estava acertando o código, mas valeu mesmo. Muito agradecido.
Obrigado pela colaboração Alessandro.