dúvida if else dentro do try

Boa tarde Pessoal! No momento em que executo a aplicação a parte da soma que consta na instrução if nao funciona nao realizando a soma e divisao dos valores, podem me ajudar?

try{   

			if(num1!=0){
				
				num1 = Integer.parseInt(DAC.getText());     
				DAC.setText("");     
				num2 = Integer.parseInt(POS.getText());     
				POS.setText(""); 
				num3 = Integer.parseInt(HOLD.getText());     
				HOLD.setText("");
				num4 = Integer.parseInt(Temposervico.getText());     
				Temposervico.setText("");

				div = ((num1+num2+num3)/num4)*100; 

				//Resultado.setText(Double.toString(div));   
				Resultado.setText(String.format("%6.2f",div));   

				lb1.setForeground(Color.blue);   
				lb1.setText("Entre com um novo valor! "  + Resultado.getText());  
				
			}else{	

				num5 = Integer.parseInt(DACPOSHOLD.getText());     
				DACPOSHOLD.setText("");
				num4 = Integer.parseInt(Temposervico.getText());     
				Temposervico.setText("");

				div = (num5/num4)*100; 



				//Resultado.setText(Double.toString(div));   
				Resultado.setText(String.format("%6.2f",div));   

				lb1.setForeground(Color.blue);   
				lb1.setText("Entre com um novo valor! "  + Resultado.getText());   

			}

verifique se num1 é realmente diferente de zero

abrasss

sim amigo, ele é diferente de zero! e colocando o valor neste formato ele nao é aceito “0”.

Pelo código postado o 0 é String, tente colocar “0” para ver se resolve o seu problema.

Boa tarde,
compara inteiro, seria melhor

 if(num1>0){

Pelo código postado o 0 é String, tente colocar “0” para ver se resolve o seu problema, e se for coloque!num1.equals("0")

Helber

faz um debug, uma exceção deve estar sendo lançada entao… sendo diferente de 0 seria impossivel cair no else

abrasss

Perdao Helder…

vc está fazendo comparação de Integer e não do tipo primitivo, mude sua condicional para

 if(!num1.equals(0) { ...

para que vc entenda pq não se pode comparar Wrappers usando os operadores ==, != … e sim usando o método equals, segue uma boa referencia

http://www.devx.com/tips/Tip/42276

abrasss

Pessoal segue o código completo para que vc’s possam me ajudar, desde já agradeço a atenção de todos.

import java.awt.*;     
import java.awt.event.*;     
import javax.swing.*;     
//import java.util.*;     
//import java.text.DecimalFormat;     

public class Produtividade extends JFrame implements ActionListener     
{     
	private JTextField DAC, POS, HOLD, Temposervico, DACPOSHOLD, Resultado;     
	private JButton Calcular;     
	private JLabel dac, pos, hold, temposervico, dacposhold, resultado, lb1,topo,topo1;     
	double num1,num2,num3,num4,num5,div, deci;     


	public Produtividade (){     
		super("Produtividade 2 Sem Tempo Ócio");     
		setSize(330,300);     
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     
		getContentPane() .setLayout(null);     
		//DecimalFormat div = new DecimalFormat("0.00");   


		dac = new JLabel("DAC: ");     
		getContentPane() .add(dac);     
		dac .setBounds(5,60,120,20);     
		DAC = new JTextField();     
		getContentPane() .add(DAC);     
		DAC .setBounds(40,60,50,20);     
		DAC .addActionListener(this);     

		pos = new JLabel("POS: ");     
		getContentPane() .add(pos);     
		pos .setBounds(95,60,120,20);     
		POS = new JTextField();     
		getContentPane() .add(POS);     
		POS .setBounds(130,60,50,20);     
		POS .addActionListener(this);     

		hold = new JLabel("HOLD: ");     
		getContentPane() .add(hold);     
		hold .setBounds(185,60,120,20);     
		HOLD = new JTextField();     
		getContentPane() .add(HOLD);     
		HOLD .setBounds(225,60,50,20);     
		HOLD .addActionListener(this); 

		dacposhold = new JLabel("DAC+POS+HOLD: ");     
		getContentPane() .add(dacposhold);     
		dacposhold .setBounds(5,90,140,20);     
		DACPOSHOLD = new JTextField();     
		getContentPane() .add(DACPOSHOLD);     
		DACPOSHOLD .setBounds(130,90,80,20);     
		DACPOSHOLD .addActionListener(this); 


		temposervico = new JLabel("TEMPO EM SERVIÇO: ");     
		getContentPane() .add(temposervico);     
		temposervico .setBounds(5,120,140,20);     
		Temposervico = new JTextField();     
		getContentPane() .add(Temposervico);     
		Temposervico .setBounds(130,120,80,20);     
		Temposervico .addActionListener(this); 

		resultado = new JLabel("RESULTADO: ");     
		getContentPane() .add(resultado);     
		resultado .setBounds(5,150,120,20);     

		Resultado = new JFormattedTextField("");     
		getContentPane() .add(Resultado);     
		Resultado .setBounds(130,150,80,20);     
		Resultado .addActionListener(this);     

		Calcular = new JButton("Calcular");     
		getContentPane() .add(Calcular);     
		Calcular .setBounds(60,180,120,20);     
		Calcular.addActionListener(this);     

		lb1 = new JLabel();   
		getContentPane().add(lb1);   
		lb1 .setBounds(5,210,190,20);       

		topo = new JLabel("GCO CAS");   
		getContentPane().add(topo);   
		topo .setBounds(120,10,300,20);   

		topo1 = new JLabel("Diretoria de Planejamento e Controle de Trafego");   
		getContentPane().add(topo1);   
		topo1 .setBounds(5,25,300,20);   

	} 

	public static void main(String args [])     
	{     

		Produtividade obj = new Produtividade();     
		obj.setVisible(true);     
		obj.setResizable(false);   
		obj.setDefaultCloseOperation(EXIT_ON_CLOSE);   
	}     

	@Override     
	public void actionPerformed(ActionEvent arg0) {     
		//  // TODO Auto-generated method stub     
		try{   

			if(num1>0){
				
				num1 = Integer.parseInt(DAC.getText());     
				DAC.setText("");     
				num2 = Integer.parseInt(POS.getText());     
				POS.setText(""); 
				num3 = Integer.parseInt(HOLD.getText());     
				HOLD.setText("");
				num4 = Integer.parseInt(Temposervico.getText());     
				Temposervico.setText("");

				div = ((num1+num2+num3)/num4)*100; 

				//Resultado.setText(Double.toString(div));   
				Resultado.setText(String.format("%6.2f",div));   

				lb1.setForeground(Color.blue);   
				lb1.setText("Entre com um novo valor! "  + Resultado.getText());  
				
			}else{	

				num5 = Integer.parseInt(DACPOSHOLD.getText());     
				DACPOSHOLD.setText("");
				num4 = Integer.parseInt(Temposervico.getText());     
				Temposervico.setText("");

				div = (num5/num4)*100; 



				//Resultado.setText(Double.toString(div));   
				Resultado.setText(String.format("%6.2f",div));   

				lb1.setForeground(Color.blue);   
				lb1.setText("Entre com um novo valor! "  + Resultado.getText());   

			}
		}		

		catch(NumberFormatException e) {   



			lb1.setForeground(Color.red);   
			lb1.setText("Entre com um valor!");   


		}

	}               

} 

JTexField considera que todos os valores são String, por isso do parse para inteiro que você esta fazendo logo o 0 esta sendo considerado como String, o correto será if(!num1.equals("0"))

mesmo assim não esta indo, estou pesquisando na net e vendo nos livros, pra ver se resolvo esse problema.

Da uma olhada no seu código…
Neste trecho…

 public void actionPerformed(ActionEvent arg0) {       
        //  // TODO Auto-generated method stub       
        try{     
  
            if(num1>0){   // Voce declarou num1 porém antes de comparar você não atribuiu o valor....
                   
                num1 = Integer.parseInt(DAC.getText());
//Faça assim
 try{     
  
             num1 = Integer.parseInt(DAC.getText());
            if(num1>0){   // Voce declarou num1 porém antes de comparar você não atribuiu o valor....
                   
                       

amigo, da certo porem ele não entra mais no else.

Pessoal, segue uma solução que funciona porem não é a ideal, pois as frases em azul acabam nao funcionando no código.

import java.awt.*;     
import java.awt.event.*;     
import javax.swing.*;     

public class Produtividade extends JFrame implements ActionListener     
{     
	private JTextField DAC, POS, HOLD, Temposervico, DACPOSHOLD, Resultado;     
	private JButton Calcular;     
	private JLabel dac, pos, hold, temposervico, dacposhold, resultado, lb1,topo,topo1;     
	double num1,num2,num3,num4,num5,div, deci;     


	public Produtividade (){     
		super("Produtividade 2 Sem Tempo Ócio");     
		setSize(330,300);     
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     
		getContentPane() .setLayout(null);     
		//DecimalFormat div = new DecimalFormat("0.00");   


		dac = new JLabel("DAC: ");     
		getContentPane() .add(dac);     
		dac .setBounds(5,60,120,20);     
		DAC = new JTextField();     
		getContentPane() .add(DAC);     
		DAC .setBounds(40,60,50,20);     
		DAC .addActionListener(this);     

		pos = new JLabel("POS: ");     
		getContentPane() .add(pos);     
		pos .setBounds(95,60,120,20);     
		POS = new JTextField();     
		getContentPane() .add(POS);     
		POS .setBounds(130,60,50,20);     
		POS .addActionListener(this);     

		hold = new JLabel("HOLD: ");     
		getContentPane() .add(hold);     
		hold .setBounds(185,60,120,20);     
		HOLD = new JTextField();     
		getContentPane() .add(HOLD);     
		HOLD .setBounds(225,60,50,20);     
		HOLD .addActionListener(this); 

		dacposhold = new JLabel("DAC+POS+HOLD: ");     
		getContentPane() .add(dacposhold);     
		dacposhold .setBounds(5,90,140,20);     
		DACPOSHOLD = new JTextField();     
		getContentPane() .add(DACPOSHOLD);     
		DACPOSHOLD .setBounds(130,90,80,20);     
		DACPOSHOLD .addActionListener(this); 

		temposervico = new JLabel("TEMPO EM SERVIÇO: ");     
		getContentPane() .add(temposervico);     
		temposervico .setBounds(5,120,140,20);     
		Temposervico = new JTextField();     
		getContentPane() .add(Temposervico);     
		Temposervico .setBounds(130,120,80,20);     
		Temposervico .addActionListener(this); 

		resultado = new JLabel("RESULTADO: ");     
		getContentPane() .add(resultado);     
		resultado .setBounds(5,150,120,20);     

		Resultado = new JFormattedTextField("");     
		getContentPane() .add(Resultado);     
		Resultado .setBounds(130,150,80,20);     
		Resultado .addActionListener(this);     

		Calcular = new JButton("Calcular");     
		getContentPane() .add(Calcular);     
		Calcular .setBounds(60,180,120,20);     
		Calcular.addActionListener(this);     

		lb1 = new JLabel();   
		getContentPane().add(lb1);   
		lb1 .setBounds(5,210,190,20);       

		topo = new JLabel("GCO CAS");   
		getContentPane().add(topo);   
		topo .setBounds(120,10,300,20);   

		topo1 = new JLabel("Diretoria de Planejamento e Controle de Trafego");   
		getContentPane().add(topo1);   
		topo1 .setBounds(5,25,300,20);   

	} 

	public static void main(String args [])     
	{     

		Produtividade obj = new Produtividade();     
		obj.setVisible(true);     
		obj.setResizable(false);   
		obj.setDefaultCloseOperation(EXIT_ON_CLOSE);   
	}     

	@Override     
	public void actionPerformed(ActionEvent arg0) {     
		//  // TODO Auto-generated method stub     
		try{   

			num1 = Integer.parseInt(DAC.getText());     
			DAC.setText("");     
			num2 = Integer.parseInt(POS.getText());     
			POS.setText(""); 
			num3 = Integer.parseInt(HOLD.getText());     
			HOLD.setText("");
			num4 = Integer.parseInt(Temposervico.getText());     
			Temposervico.setText("");

			div = ((num1+num2+num3)/num4)*100; 

			Resultado.setText(String.format("%6.2f",div));   

			lb1.setForeground(Color.blue);   
			lb1.setText("Entre com um novo valor! "  + Resultado.getText());  

			lb1.setForeground(Color.red);   
			lb1.setText("Entre com um valor!"); 


			num5 = Integer.parseInt(DACPOSHOLD.getText());     
			DACPOSHOLD.setText("");
			num4 = Integer.parseInt(Temposervico.getText());     
			Temposervico.setText("");

			div = (num5/num4)*100; 

			Resultado.setText(String.format("%6.2f",div));   

			lb1.setForeground(Color.blue);   
			lb1.setText("Entre com um novo valor! "  + Resultado.getText());   

		}		

		catch(NumberFormatException e) {   

			num5 = Integer.parseInt(DACPOSHOLD.getText());     
			DACPOSHOLD.setText("");
			num4 = Integer.parseInt(Temposervico.getText());     
			Temposervico.setText("");

			div = (num5/num4)*100; 

			Resultado.setText(String.format("%6.2f",div));   

			lb1.setForeground(Color.blue);   
			lb1.setText("Entre com um novo valor! "  + Resultado.getText());  


		}finally{

			lb1.setForeground(Color.red);   
			lb1.setText("Entre com um valor!"); 
		}

	}               

}