Problemas com calculadora simples

Gente, sempre fui acostumado com o eclipse, e estou me adaptando agora ao netbeans, fiz um programinha simples no eclipse de uma calculadora, usando interface gráfica, jButton e textfield, porém ao migrar para o netbeans estou sentindo um pouco de dificuldade, vou postar meu código, ele roda direitinho, mostra a janela com os 2 text field e os 4 botões, Soma, Subtração, Multiplicação e Divisão. mas quando coloco 2 valores e clico em algum dos botões, o resultado sempre é 0. alguem dar uma força por favor. Irei mostrar meu código no eclipse que roda direitinho e o código no netbeans.

CÓDIGO NO ECLIPSE


import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;


public class Calculadora extends JFrame implements ActionListener {


	JTextField text1, text2;
	JButton btSoma , btSubtracao, btMultiplicacao, btDivisao ;
	double num1, num2;
	
	public Calculadora(){
		
		super ("Calculadora Simples");
		setSize(430,150);
		setLayout (new FlowLayout(FlowLayout.CENTER));
		
		//Instanciando os componentes.
		
		btSoma = new JButton("SOMA");
		btSubtracao = new JButton("SUBTRAÇÃO");
		btMultiplicacao = new JButton ("MULTIPLICAÇÃO");
		btDivisao = new JButton ("DIVISÃO");
		text1 = new JTextField (15);
		text2 = new JTextField (15);
		
		//Colocando os objetos na tela.
		getContentPane().setLayout(new FlowLayout(FlowLayout.LEFT));
		getContentPane().add(text1);
		getContentPane().add(text2);
		getContentPane().add(btSoma);
		getContentPane().add(btSubtracao);
		getContentPane().add(btMultiplicacao);
		getContentPane().add(btDivisao);
		
		//adicionar ações aos meus componentes.
		
		btSoma.addActionListener(this);
		btSubtracao.addActionListener(this);
		btMultiplicacao.addActionListener(this);
		btDivisao.addActionListener(this);
		
	}
	
	public static void main(String[] args) {
		
		Calculadora c = new Calculadora();
		c.setLocationRelativeTo(null);
		c.setVisible(true);
		c.setDefaultCloseOperation(EXIT_ON_CLOSE);
		
	}
	
	

	public void actionPerformed(ActionEvent e){ 
	
		
		try 
		{
			num1 = Double.parseDouble(text1.getText());
			num2 = Double.parseDouble(text2.getText());
			
			if (e.getSource() == btSoma){
			
				JOptionPane.showMessageDialog(null, "A soma é igual a " + (num1 + num2));

			}
		
			if (e.getSource() == btSubtracao){
				
			
				JOptionPane.showMessageDialog(null, "A subtração é igual a " + (num1 - num2) );

		}
			
			if (e.getSource() == btMultiplicacao){
		
				JOptionPane.showMessageDialog(null, "A multiplicação é igual a " + (num1 * num2) );
			
		}
		
			if (e.getSource() == btDivisao){
				
				JOptionPane.showMessageDialog(null, "A divisão é igual a " + (num1 / num2) );

			}
			
		} 
		catch (Exception e2) 
		{
			JOptionPane.showMessageDialog(null, "Digite valores Válidos!");
		}
		
	}
}		

CÓDIGO NO NETBEANS

JPanel:


package Calculadora;

import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class JanelaCalc extends javax.swing.JPanel {



    public JanelaCalc() {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jButton4 = new javax.swing.JButton();

        jTextField1.setText("jTextField1");
        jTextField1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField1ActionPerformed(evt);
            }
        });

        jTextField2.setText("jTextField2");
        jTextField2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextField2ActionPerformed(evt);
            }
        });

        jButton1.setText("Soma");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton2.setText("Subtração");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jButton3.setText("Multiplicação");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        jButton4.setText("Divisão");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(62, 62, 62)
                        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(45, 45, 45)
                        .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jButton1)
                        .addGap(18, 18, 18)
                        .addComponent(jButton2)
                        .addGap(18, 18, 18)
                        .addComponent(jButton3)
                        .addGap(18, 18, 18)
                        .addComponent(jButton4)))
                .addContainerGap(26, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(30, 30, 30)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(26, 26, 26)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton1)
                    .addComponent(jButton2)
                    .addComponent(jButton3)
                    .addComponent(jButton4))
                .addContainerGap(201, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
    }// </editor-fold>                        

    double num1, num2;
    
    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        JOptionPane.showMessageDialog(null, "A multiplicação é igual a " + (num1 * num2));
    }                                        

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        JOptionPane.showMessageDialog(null, "A divisão é igual a " + (num1 / num2));
    }                                        

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        JOptionPane.showMessageDialog(null, "A soma é igual a " + (num1 + num2));
    }                                        

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        JOptionPane.showMessageDialog(null, "A subtração é igual a " + (num1 - num2));
    }                                        

    private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        num1 = Double.parseDouble(jTextField1.getText());
    }                                           

    private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {                                            
        num2 = Double.parseDouble(jTextField2.getText());
    }                                           
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    // End of variables declaration                   
}

JFrame:


package Calculadora;

import javax.swing.JFrame;


public class Calculadora extends JFrame {

    public JanelaCalc painel;

    Calculadora() {
        super("Calculadora");
        painel = new JanelaCalc();
        this.add(painel);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setLocationRelativeTo(null);
        this.setVisible(true);
        this.setSize(500, 400);


    }
}

MAIN:


public class ProgramaMain {
    public static void main(String[] args) {
        
        Calculadora c = new Calculadora();
        
        
    }
}

ActionPerformed, para um JTextField, não está definido (o JTextField não é um botão nem uma opção de menu…) - portanto os números num1 e num2 não estão sendo convertidos porque o método não está sendo chamado. .

Para que seu programa funcione, crie uma função que pega os valores dos jtextfields e os converta nas variáveis num1 e num2, e chame essa função no começo de cada método que atende aos botões.

Isto não está sendo feito dentro de JtextField1 e JtextField2?

Não, porque a alteração de conteúdo de um JTextField não chama o ActionPerformed.

Na verdade, para poder pegar a alteração de conteúdo de um JTextField à medida que você vai digitando alguma coisa nele, é necessário associar um Document, o que é meio chato.

No eclipse foi tão mais simples fazer essa calculadora simples, no netbeans to perdido, talvez seja por que estou pegando no netbeans agora, não entendi muito bem o que vc quis dizer, se vc tiver tempo, poderia fazer essa função e mostrar a soluão para o código? Iria ajudar muito, desde já agradeço muito a atenção (:

Não vou fazer no Netbeans porque não tenho o Netbeans aqui. Vou fazer no Eclipse mesmo, mas vou explicar direitinho o que vossa reverendíssima pessoa poderia fazer.

Muito Obrigado Meretíssimo =D

package guj;

import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.PrintWriter;
import java.io.StringWriter;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class ExemploCalculadoraSimples extends JFrame {
    private JLabel lblNumero1;
    private JTextField txtNumero1;
    private JLabel lblNumero2;
    private JTextField txtNumero2;
    private JButton btnSomar;
    private JButton btnSubtrair;
    private JLabel lbl;
    private JLabel lblResultado;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ExemploCalculadoraSimples frame = new ExemploCalculadoraSimples();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public ExemploCalculadoraSimples() {
        setBounds(100, 100, 450, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().setLayout(new GridLayout(5, 2, 2, 2));
        getContentPane().add(getLblNumero1());
        getContentPane().add(getTxtNumero1());
        getContentPane().add(getLblNumero2());
        getContentPane().add(getTxtNumero2());
        getContentPane().add(getBtnSomar());
        getContentPane().add(getBtnSubtrair());
        getContentPane().add(getLbl());
        getContentPane().add(getLblResultado());

    }

    private JLabel getLblNumero1() {
        if (lblNumero1 == null) {
            lblNumero1 = new JLabel("1\u00BA N\u00FAmero");
        }
        return lblNumero1;
    }

    private JTextField getTxtNumero1() {
        if (txtNumero1 == null) {
            txtNumero1 = new JTextField();
            txtNumero1.setColumns(10);
        }
        return txtNumero1;
    }

    private JLabel getLblNumero2() {
        if (lblNumero2 == null) {
            lblNumero2 = new JLabel("2\u00BA N\u00FAmero");
        }
        return lblNumero2;
    }

    private JTextField getTxtNumero2() {
        if (txtNumero2 == null) {
            txtNumero2 = new JTextField();
            txtNumero2.setColumns(10);
        }
        return txtNumero2;
    }

    private JButton getBtnSomar() {
        if (btnSomar == null) {
            btnSomar = new JButton("+");
            btnSomar.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    getNumbers();
                    double soma = num1 + num2;
                    lblResultado.setText(Double.toString(soma));
                }
            });
        }
        return btnSomar;
    }

    private JButton getBtnSubtrair() {
        if (btnSubtrair == null) {
            btnSubtrair = new JButton("-");
            btnSubtrair.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    getNumbers();
                    double diferenca = num1 - num2;
                    lblResultado.setText(Double.toString(diferenca));
                }
            });
        }
        return btnSubtrair;
    }

    private JLabel getLbl() {
        if (lbl == null) {
            lbl = new JLabel("Resultado:");
        }
        return lbl;
    }

    private JLabel getLblResultado() {
        if (lblResultado == null) {
            lblResultado = new JLabel("-");
        }
        return lblResultado;
    }

    private double num1;
    private double num2;

    private void getNumbers() {
        try {
            num1 = Double.parseDouble(getTxtNumero1().getText());
            num2 = Double.parseDouble(getTxtNumero2().getText());
        } catch (NumberFormatException ex) {
            // As seguintes 4 linhas de código servem para pegar o stack trace
            // de qualquer exceção (não somente NumberFormatException) e
            // mostrá-la em um JOptionPane.
            StringWriter sw = new StringWriter();
            PrintWriter pw = new PrintWriter(sw);
            ex.printStackTrace(pw);
            JOptionPane.showMessageDialog(this, sw.toString());
        }
    }

}

Como você deve ter reparado, o JTextField não tem eventos que eu possa aproveitar. Então eu aproveito o evento do botão e pego o valor que está no JTextField para pôr no num1 e num2 usando o método “getNumbers”. De quebra, eu mostro como é que se tratam exceções de modo que eu possa ver as coisas na tela.

Obrigado amigo, sou iniciante, não entendi algumas coisas, mas outras sim, vou estudar mais um tanto e vou entendendo direitinho, é q fico meio confuso pois estudo pelo youtube ai o professor da facul mostra diferente, ai a apostila da facul diferente, e para quem ta começando fica um pouco confuso. Mas te agradeço muito pela atenção e pelos conhecimentos fornecidos. Valeu amigo