Valor no visor da calculadora

Java

09/04/2015

Gente tenho uma calculadora com 2 visores tipo a do windows e preciso que o visor de cima fique recebendo os dígitos,
mas por exemplo se eu faço 1+ 2 o visor nao recebe o 2

private void numeroDigitado(String numero) {
        jTextField1.setText("");
        temp = jTextField1.getText();
//        jTextField2.setText(numero);
        temp = temp + numero;
        jTextField2.setText(temp);
        jTextField1.setText(temp);
        
       // jTextField1.setText(temp);

    }

    private void escolheOperacao(char op) throws NumberFormatException {
        operacao = op;
        num1 = Double.parseDouble(jTextField1.getText());
        jTextField1.setText("");
        jTextField2.setText(  temp + " " + " " + op + " ");
    }
Leonardo Silva

Leonardo Silva

Curtidas 0

Respostas

Ronaldo Lanhellas

Ronaldo Lanhellas

09/04/2015

O código que você postou não diz muita coisa. Preciso ver o listener que faz a captura dos valores e dispara o cálculo.
GOSTEI 0
Leonardo Silva

Leonardo Silva

09/04/2015

Aqui está o código completo...

package calculadora;

import javax.swing.JOptionPane;

/**
 * *************LEONARDO CARVALHO SILVA***********
 */
public class JFrameCalculadora extends javax.swing.JFrame {

    char operacao;
    String temp, temp2;
    double num1, num2, resultado;

    private javax.swing.JButton botao0;
    private javax.swing.JButton botao1;
    private javax.swing.JButton botao2;
    private javax.swing.JButton botao3;
    private javax.swing.JButton botao4;
    private javax.swing.JButton botao5;
    private javax.swing.JButton botao6;
    private javax.swing.JButton botao7;
    private javax.swing.JButton botao8;
    private javax.swing.JButton botao9;
    private javax.swing.JButton botaoAdicao;
    private javax.swing.JButton botaoDivisao;
    private javax.swing.JButton botaoIgualdade;
    private javax.swing.JButton botaoLimpar;
    private javax.swing.JButton botaoMultiplicacao;
    private javax.swing.JButton botaoSubtracao;
    private javax.swing.JButton botaoVirgula;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;

    public JFrameCalculadora() {
        initComponents();
    }

    /*INICIANDO OS COMPONENTES*/
    @SuppressWarnings("unchecked")
    private void initComponents() {
        jPanel1 = new javax.swing.JPanel();
        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        botao0 = new javax.swing.JButton();
        botao1 = new javax.swing.JButton();
        botao2 = new javax.swing.JButton();
        botao3 = new javax.swing.JButton();
        botao4 = new javax.swing.JButton();
        botao5 = new javax.swing.JButton();
        botao6 = new javax.swing.JButton();
        botao7 = new javax.swing.JButton();
        botao8 = new javax.swing.JButton();
        botao9 = new javax.swing.JButton();
        botaoVirgula = new javax.swing.JButton();
        botaoAdicao = new javax.swing.JButton();
        botaoSubtracao = new javax.swing.JButton();
        botaoMultiplicacao = new javax.swing.JButton();
        botaoDivisao = new javax.swing.JButton();
        botaoLimpar = new javax.swing.JButton();
        botaoIgualdade = new javax.swing.JButton();

        /**
         * **CONFIGURAÇÃO DO JFRAME****
         */
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Calculadora");
        setBackground(new java.awt.Color(204, 204, 204));
        setLocation(444, 333);
        setResizable(false);

        /*TEXTO DO VISORES SEMPRE A DIREITA*/
        jTextField1.setHorizontalAlignment(jTextField1.RIGHT);
        jTextField2.setHorizontalAlignment(jTextField2.RIGHT);
        /*VISOR DE BAIXO INICIA COM O VALOR 0*/
        jTextField1.setText("0");
        /*USUÁRIO NÁO CONSEGUE EDITAR OS VISORES*/
        jTextField1.setEditable(false);
        jTextField2.setEditable(false);
        /*COR DO PAINEL*/
        jPanel1.setBackground(new java.awt.Color(204, 204, 204));
        /*DEIXA OS 2 VISORES SEM BORDA*/
        jTextField1.setBorder(null);
        jTextField2.setBorder(null);

        botao0.setText("0");
        botao0.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao0ActionPerformed(evt);
            }
        });
        botao1.setText("1");
        botao1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao1ActionPerformed(evt);
            }
        });
        botao2.setText("2");
        botao2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao2ActionPerformed(evt);
            }
        });
        botao3.setText("3");
        botao3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao3ActionPerformed(evt);
            }
        });
        botao4.setText("4");
        botao4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao4ActionPerformed(evt);
            }
        });
        botao5.setText("5");
        botao5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao5ActionPerformed(evt);
            }
        });
        botao6.setText("6");
        botao6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao6ActionPerformed(evt);
            }
        });
        botao7.setText("7");
        botao7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao7ActionPerformed(evt);
            }
        });
        botao8.setText("8");
        botao8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao8ActionPerformed(evt);
            }
        });
        botao9.setText("9");
        botao9.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botao9ActionPerformed(evt);
            }
        });
        botaoVirgula.setText(",");
        botaoVirgula.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botaoVirgulaActionPerformed(evt);
            }
        });
        botaoAdicao.setText("+");
        botaoAdicao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botaoAdicaoActionPerformed(evt);
            }
        });
        botaoSubtracao.setText("-");
        botaoSubtracao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botaoSubtracaoActionPerformed(evt);
            }
        });
        botaoMultiplicacao.setText("*");
        botaoMultiplicacao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botaoMultiplicacaoActionPerformed(evt);
            }
        });
        botaoDivisao.setText("/");
        botaoDivisao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botaoDivisaoActionPerformed(evt);
            }
        });
        botaoLimpar.setText("C");
        botaoLimpar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botaoLimparActionPerformed(evt);
            }
        });
        botaoIgualdade.setText("=");
        botaoIgualdade.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botaoIgualdadeActionPerformed(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()
                        .addContainerGap()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                                .addComponent(jTextField2)
                                                .addComponent(jTextField1)
                                                .addGroup(jPanel1Layout.createSequentialGroup()
                                                        .addComponent(botao7, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                        .addComponent(botao8, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                        .addComponent(botao9, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                        .addComponent(botaoDivisao, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                        .addComponent(botaoLimpar, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                        .addGap(0, 12, Short.MAX_VALUE))
                                .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                                .addGroup(jPanel1Layout.createSequentialGroup()
                                                        .addComponent(botao0, javax.swing.GroupLayout.PREFERRED_SIZE, 86, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                        .addComponent(botaoVirgula, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
                                                .addGroup(jPanel1Layout.createSequentialGroup()
                                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                                                                        .addComponent(botao1, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                                        .addComponent(botao2, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
                                                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                                                                        .addComponent(botao4, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                                        .addComponent(botao5, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                                                .addComponent(botao6, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                                .addComponent(botao3, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                                .addComponent(botaoSubtracao, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(botaoMultiplicacao, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(botaoAdicao, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(botaoIgualdade, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(2, 2, 2))))
        );
        jPanel1Layout.setVerticalGroup(
                jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(jPanel1Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(botao7, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(botao9, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(botaoDivisao, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(botaoLimpar, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(botao8, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                                .addComponent(botao4, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(botao5, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(botao6, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(botaoMultiplicacao, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                                .addComponent(botao1, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(botao2, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(botao3, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(botaoSubtracao, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                                .addComponent(botao0, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(botaoVirgula, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addComponent(botaoAdicao, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addComponent(botaoIgualdade, javax.swing.GroupLayout.PREFERRED_SIZE, 118, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addContainerGap(53, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(jPanel1, 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.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        pack();
    }

    private void botao0ActionPerformed(java.awt.event.ActionEvent evt) {
        numeroDigitado("0");
//        jTextField2.setText("0" + temp);
    }

    private void botao1ActionPerformed(java.awt.event.ActionEvent evt) {
        numeroDigitado("1");
    }

    private void botao2ActionPerformed(java.awt.event.ActionEvent evt) {
        numeroDigitado("2");
    }

    private void botao3ActionPerformed(java.awt.event.ActionEvent evt) {
        numeroDigitado("3");
    }

    private void botao4ActionPerformed(java.awt.event.ActionEvent evt) {
        numeroDigitado("4");
    }

    private void botao5ActionPerformed(java.awt.event.ActionEvent evt) {
        numeroDigitado("5");
    }

    private void botao6ActionPerformed(java.awt.event.ActionEvent evt) {
        numeroDigitado("6");
    }

    private void botao7ActionPerformed(java.awt.event.ActionEvent evt) {
        numeroDigitado("7");
    }

    private void botao8ActionPerformed(java.awt.event.ActionEvent evt) {
        numeroDigitado("8");
    }

    private void botao9ActionPerformed(java.awt.event.ActionEvent evt) {
        numeroDigitado("9");
    }

    private void botaoAdicaoActionPerformed(java.awt.event.ActionEvent evt) {
        escolheOperacao('+');
    }

    private void botaoSubtracaoActionPerformed(java.awt.event.ActionEvent evt) {
        escolheOperacao('-');
    }

    private void botaoMultiplicacaoActionPerformed(java.awt.event.ActionEvent evt) {
        escolheOperacao('*');
    }

    private void botaoDivisaoActionPerformed(java.awt.event.ActionEvent evt) {
        escolheOperacao('/');
    }

    private void botaoVirgulaActionPerformed(java.awt.event.ActionEvent evt) {
        numeroDigitado(".");
    }

    private void botaoLimparActionPerformed(java.awt.event.ActionEvent evt) {
        num1 = 0;
        num2 = 0;
        /**
         * QUANDO ACIONAR O BOTÃO "C" O VISOR DE BAIXO INICIARÁ EM "0"*
         */
        jTextField1.setText("0");
        jTextField2.setText("");
    }

    private void botaoIgualdadeActionPerformed(java.awt.event.ActionEvent evt) {
        num2 = Double.parseDouble(jTextField1.getText());
        switch (operacao) {
            case '+':
                resultado = num1 + num2;
                break;

            case '-':
                resultado = num1 - num2;
                break;

            case '*':
                resultado = num1 * num2;
                break;

            case '/':
                resultado = num1 / num2;
                break;
        }
        jTextField1.setText(String.valueOf(resultado));
        /**
         * *SE A DIVISÃO FOR POR ZERO***
         */
        if (jTextField1.getText().equals("Infinity")) {
            jTextField1.setText("Impossível dividir por zero");
        }
        /**
         * QUANDO ACIONAR O BOTÃO "=" O VISOR DE CIMA SERÁ LIMPADO*
         */
        jTextField2.setText("");

    }

    private void numeroDigitado(String numero) {
        jTextField1.setText("");
        temp = jTextField1.getText();
        jTextField2.setText(numero);
        temp = temp + numero;
        jTextField2.setText(temp);
        jTextField1.setText(temp);

       // jTextField1.setText(temp);
    }

    private void escolheOperacao(char op) throws NumberFormatException {
        operacao = op;
        num1 = Double.parseDouble(jTextField1.getText());
        jTextField1.setText("");
        jTextField2.setText(temp + " " + op + " ");
    }

    /**
     * ************
     * // Estados da calculadora
    public enum estadosDaCalculadora {
        INICIANDO,
        PRIMEIRA_DIGITACAO,
        EM_OPERACAO,
        NOVA_DIGITACAO,
        TOTALIZANDO
    }

    
    // Operações da calculadora
    public enum operacoesCalculadora {
        SOMA,
        SUBTRAI,
        MULTIPLICA,
        DIVIDI
    }

    // Propriedades para controle interno
    private estadosDaCalculadora estado = estadosDaCalculadora.INICIANDO;
    private operacoesCalculadora operacaoCalculadora;
    private double acumulador;
     *********************
     */
}
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

09/04/2015

O que acontece quando você clicar no botão "2" ? Pela lógica do método numeroDigitado() o temp sempre receberá o último valor digitado assim como o jTextField2, substituindo o já existente.
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

09/04/2015

O que acontece quando você clicar no botão "2" ? Pela lógica do método numeroDigitado() o temp sempre receberá o último valor digitado assim como o jTextField2, substituindo o já existente.
GOSTEI 0
POSTAR