Codigo Calculadora

6 respostas
M

Ola pessoal , sou novo na comunidade , e estou tentando pegar alguns macetes , fiz esse codigo fonte pelo NetBeens … pra min o codigo fico um pouco porco , sera q alguem poderia me dizer no que eu poderia melhorar essa codigo , tipo algumas dicas de quem ja desenvolvem em java a mais tempo … o codigo esta ai abaixo
Desde ja obrigado :lol:

public class calculador extends javax.swing.JFrame {

public String valor1="" ;
public String valor2;
public double valorN = 0 ;
public double valorN2 = 0 ;
public double resultado;
public int op = 0, passou = 1 ;


public calculador() {
    initComponents();
}


private void initComponents() {
    jLabel4 = new javax.swing.JLabel();
    jPanel1 = new javax.swing.JPanel();
    Text1 = new javax.swing.JTextField();
    BotaoLimp = new javax.swing.JButton();
    jButton1 = new javax.swing.JButton();
    jPanel3 = new javax.swing.JPanel();
    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();
    Botao9 = new javax.swing.JButton();
    Botao8 = new javax.swing.JButton();
    Botao0 = new javax.swing.JButton();
    jPanel2 = new javax.swing.JPanel();
    BotaoSub = new javax.swing.JButton();
    BotaoMult = new javax.swing.JButton();
    BotaoDiv = new javax.swing.JButton();
    BotaoAdic = new javax.swing.JButton();

    jLabel4.setText("jLabel4");

    setMaximizedBounds(new java.awt.Rectangle(0, 0, 250, 250));
    setName("Calculadora");
    addWindowListener(new java.awt.event.WindowAdapter() {
        public void windowClosing(java.awt.event.WindowEvent evt) {
            exitForm(evt);
        }
    });

    jPanel1.setMaximumSize(new java.awt.Dimension(250, 250));
    jPanel1.setMinimumSize(new java.awt.Dimension(250, 250));
    jPanel1.setName("Calculadora");
    jPanel1.setNextFocusableComponent(Text1);
    jPanel1.setPreferredSize(new java.awt.Dimension(250, 250));
    jPanel1.setRequestFocusEnabled(false);
    Text1.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
    Text1.setText("0");
    Text1.setMaximumSize(new java.awt.Dimension(60, 30));
    Text1.setMinimumSize(new java.awt.Dimension(41, 35));
    Text1.setPreferredSize(new java.awt.Dimension(230, 19));
    Text1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            Text1ActionPerformed(evt);
        }
    });

    jPanel1.add(Text1);

    BotaoLimp.setText("=");
    BotaoLimp.setPreferredSize(new java.awt.Dimension(70, 23));
    BotaoLimp.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            BotaoLimpActionPerformed(evt);
        }
    });

    jPanel1.add(BotaoLimp);

    jButton1.setLabel("CE");
    jButton1.setPreferredSize(new java.awt.Dimension(70, 23));
    jButton1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            jButton1ActionPerformed(evt);
        }
    });

    jPanel1.add(jButton1);

    jPanel3.setMinimumSize(new java.awt.Dimension(100, 10));
    jPanel3.setPreferredSize(new java.awt.Dimension(150, 150));
    Botao1.setHorizontalAlignment(javax.swing.SwingConstants.LEADING);
    Botao1.setLabel("1");
    Botao1.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            Botao1ActionPerformed(evt);
        }
    });

    jPanel3.add(Botao1);

    Botao2.setLabel("2");
    Botao2.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            Botao2ActionPerformed(evt);
        }
    });

    jPanel3.add(Botao2);

    Botao3.setLabel("3");
    Botao3.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            Botao3ActionPerformed(evt);
        }
    });
    Botao3.addKeyListener(new java.awt.event.KeyAdapter() {
        public void keyPressed(java.awt.event.KeyEvent evt) {
            Botao3KeyPressed(evt);
        }
    });

    jPanel3.add(Botao3);

    Botao4.setLabel("4");
    Botao4.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            Botao4ActionPerformed(evt);
        }
    });

    jPanel3.add(Botao4);

    Botao5.setLabel("5");
    Botao5.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            Botao5ActionPerformed(evt);
        }
    });

    jPanel3.add(Botao5);

    Botao6.setLabel("6");
    Botao6.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            Botao6ActionPerformed(evt);
        }
    });

    jPanel3.add(Botao6);

    Botao7.setLabel("7");
    Botao7.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            Botao7ActionPerformed(evt);
        }
    });

    jPanel3.add(Botao7);

    Botao9.setLabel("9");
    Botao9.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            Botao9ActionPerformed(evt);
        }
    });

    jPanel3.add(Botao9);

    Botao8.setLabel("8");
    Botao8.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            Botao8ActionPerformed(evt);
        }
    });

    jPanel3.add(Botao8);

    Botao0.setLabel("0");
    Botao0.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            Botao0ActionPerformed(evt);
        }
    });

    jPanel3.add(Botao0);

    jPanel1.add(jPanel3);

    jPanel2.setMaximumSize(new java.awt.Dimension(100, 90));
    jPanel2.setMinimumSize(new java.awt.Dimension(50, 33));
    jPanel2.setNextFocusableComponent(BotaoAdic);
    jPanel2.setPreferredSize(new java.awt.Dimension(50, 150));
    BotaoSub.setLabel("-");
    BotaoSub.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            BotaoSubActionPerformed(evt);
        }
    });

    jPanel2.add(BotaoSub);

    BotaoMult.setLabel("*");
    BotaoMult.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            BotaoMultActionPerformed(evt);
        }
    });

    jPanel2.add(BotaoMult);

    BotaoDiv.setLabel("/");
    BotaoDiv.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            BotaoDivActionPerformed(evt);
        }
    });

    jPanel2.add(BotaoDiv);

    BotaoAdic.setLabel("+");
    BotaoAdic.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            BotaoAdicActionPerformed(evt);
        }
    });

    jPanel2.add(BotaoAdic);

    jPanel1.add(jPanel2);

    getContentPane().add(jPanel1, java.awt.BorderLayout.WEST);

    pack();
}

private void Botao3KeyPressed(java.awt.event.KeyEvent evt) {

}
// Funcao para zerar tudo e comecar do zero :D
private void ZeraTudo( ) {
    passou = 1;
    valor1 = valor2 = "" ;
    valorN = valorN2 = resultado = 0 ;
    op = 0 ;
    Text1.setText(valor1);
    Text1.setText(valor1);
    
    
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    ZeraTudo( )   ;
  
}

private void BotaoLimpActionPerformed(java.awt.event.ActionEvent evt) {
    valorN = Double.parseDouble(valor1);
    valorN2 = Double.parseDouble(valor2);
    
    if ( op == 1 )
        resultado = valorN2 - valorN ;
    if ( op == 2 )
        resultado = valorN2 + valorN ;
    if ( op == 3 )
        resultado = valorN2 * valorN ;
    if ( op == 4 )
        resultado = valorN2 / valorN ;
    valor1 = Double.toString(resultado) ;
    Text1.setText(valor1);
    
    
 
}

private void BotaoDivActionPerformed(java.awt.event.ActionEvent evt) {
    RecebeValor( ) ;
    op = 4;
    Calcular( );
  
}

private void BotaoMultActionPerformed(java.awt.event.ActionEvent evt) {
    RecebeValor( ) ;
    op = 3;
    Calcular( );
  
}

private void BotaoAdicActionPerformed(java.awt.event.ActionEvent evt) {
    RecebeValor( ) ;
    op = 2;
    Calcular( );
 
}

/* Tipo de Operacoes

  • op = 1 - subtracao
  • op = 2 + adicao
  • op = 3 * multiplicacao
  • op = 4 / divisao
*/

private void BotaoSubActionPerformed(java.awt.event.ActionEvent evt) {

if (  passou ==1 ) {

RecebeValor( ) ;

op = 1;

passou  = 2;

}

else {

Calcular( )  ;

RecebeValor( );

op = 1 ;

}
}

private void Calcular( ) {
    
    if ( op < 5 ) {
        valorN = Double.parseDouble(valor1);
        valorN2 = Double.parseDouble(valor2);
        
        if ( op == 1 )
            resultado = valorN2 - valorN ;
        if ( op == 2 )
            resultado = valorN2 + valorN ;
        if ( op == 3 )
            resultado = valorN2 * valorN ;
        if ( op == 4 )
            resultado = valorN2 / valorN ;
        valor1 = Double.toString(resultado) ;
        Text1.setText(valor1);
        
        
    }
    
}
private void RecebeValor()
{ valor2 = valor1 ;
  valor1 = "" ;
  Text1.setText(valor1);
}
private void Botao0ActionPerformed(java.awt.event.ActionEvent evt) {
    
    valor1 = valor1.concat("0");
    Text1.setText(valor1);
    
   
}

private void Botao9ActionPerformed(java.awt.event.ActionEvent evt) {
    
    valor1 = valor1.concat("9");
    Text1.setText(valor1);
    
  
}

private void Botao8ActionPerformed(java.awt.event.ActionEvent evt) {
    
    valor1 = valor1.concat("8");
    Text1.setText(valor1);
    
}

private void Botao7ActionPerformed(java.awt.event.ActionEvent evt) {
    
    valor1 = valor1.concat("7");
    Text1.setText(valor1);
    
    
}

private void Botao6ActionPerformed(java.awt.event.ActionEvent evt) {
    
    valor1 = valor1.concat("6");
    Text1.setText(valor1);
    
   
}

private void Botao5ActionPerformed(java.awt.event.ActionEvent evt) {
    
    valor1 = valor1.concat("5");
    Text1.setText(valor1);
    
 
}

private void Botao4ActionPerformed(java.awt.event.ActionEvent evt) {
    
    valor1 = valor1.concat("4");
    Text1.setText(valor1);
    
    
}

private void Botao3ActionPerformed(java.awt.event.ActionEvent evt) {
    
    valor1 = valor1.concat("3");
    Text1.setText(valor1);
    
  
}

private void Botao2ActionPerformed(java.awt.event.ActionEvent evt) {
    valor1 = valor1.concat("2");
    Text1.setText(valor1);
   
}

private void Botao1ActionPerformed(java.awt.event.ActionEvent evt) {
 
    
    valor1 = valor1.concat("1");
    Text1.setText(valor1);
    
    
}

private void Text1ActionPerformed(java.awt.event.ActionEvent evt) {
    valor1 = Text1.getText();
    Text1.setText(valor1);
   
}

private void exitForm(java.awt.event.WindowEvent evt) {
    System.exit(0);
}


public static void main(String args[]) {
    new calculador().show();
}

// Variables declaration - do not modify
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 BotaoAdic;
private javax.swing.JButton BotaoDiv;
private javax.swing.JButton BotaoLimp;
private javax.swing.JButton BotaoMult;
private javax.swing.JButton BotaoSub;
private javax.swing.JTextField Text1;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel4;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
// End of variables declaration

}

6 Respostas

C

Uma boa prática de programação é separar a view(códigos da tela) da camada de negócio(lógica do sistema). E utilizar a camada de controle para gereciar… Procure saber mais sobre MVC. Model View Controller…

M

Eu to fazendo um trabalho em cima desse padrão(mvc) é um padrão muito bom mesmo, separa bem o código, só que eu to fazendo é pacotes, ai então eu tenho o pacote view, o pacote model, e o pacote control

F

www.jairelton.com
Tem uma calculadora lá
:slight_smile:

M

Obrigado pela resposta vou buscar mais informacoes sobre isso viu … e tentar faezr esse codigo em forma de classes , sera q fica mais facil pra visualizar ???.. O grande lance que quero entender 'e como trabalhar com classes e polimorfismo … ( ta sendo dificil entrar na minha cabeca isso )
Priemrio vou tentar faezr um codigo meu para essa calculadora … depois … assim q eu axar q aprendi tudo sobre ela , que a deixei “redonda” , ai sim vou procurar outros codigo para comparar , mas por enquanto naum vou fazer isso naum …

Mas desde ja agradeco novamente :grin: :grin: :grin:

B

“max60x”:
Obrigado pela resposta vou buscar mais informacoes sobre isso viu … e tentar faezr esse codigo em forma de classes , sera q fica mais facil pra visualizar ???.. O grande lance que quero entender 'e como trabalhar com classes e polimorfismo … ( ta sendo dificil entrar na minha cabeca isso )
Priemrio vou tentar faezr um codigo meu para essa calculadora … depois … assim q eu axar q aprendi tudo sobre ela , que a deixei “redonda” , ai sim vou procurar outros codigo para comparar , mas por enquanto naum vou fazer isso naum …

Mas desde ja agradeco novamente :grin: :grin: :grin:

Olhá Max, pra vc aprender essas coisas: polimorfismo e o resto de Java… se vc não tiver fazendo um curso, recomendo um livro que eu achei excelente, muito bom mesmo, vale a pena dar uma olhada. É o Use a Cabeça - Java. Polimorfismo não é difícil, entender classe é muito simples.

Além do mais, de vc tiver alguma dificuldade dessas coisas, é só falar, tentarei te explicar com o maior prazer, blz?

Boa sorte aí…

G

Aqui no PJ também tem uma calculadora. Dê uma olhada na seção de downloads.

Criado 7 de novembro de 2006
Ultima resposta 10 de nov. de 2006
Respostas 6
Participantes 6