Iniciando em JAVA

6 respostas
Alysson_Zanette

Ola a todos, estou iniciando no mundo JAVA e aprendendos aos poucos seus principios…
Querendo colocar em pratica as teorias dessa magnifica linguagem resolvi por em pratica os estudos
e tentar criar uma calculadora usando o NETBEANS. No começo não foi facil mas depois me achei com
a ajuda de alguns tutorias na internet…
Porem encontrei alguns bugs na minha calculadora quando foi realmente testa-la.
Em especial dois bugs que nao consigo resolver de jeito nenhum o primeiro: minha calculadora
calcula somente dois numeros nao consigo bolar algo que faça com que ela calcule mais de dois numeros
e segundo: ela aceita todos os valores que digito, gostaria de que seu Visor aceitasse somente valores numericos do meu teclado.

Se alguem conseguir me ajudar com esses bugs, no que creio que sejam bugs faceis de resolver para pessoas mais experientes,
ficaria muito grato para poder ir adiante com os estudos java.
T+ :slight_smile:

6 Respostas

carlos.e.a

Cara vai ser dificil se voce nao postar o codigo. Pelo menos no caso da primeira duvida. Quanto a segunda duvida, vou SUPOR que voce usou um text field pra receber os numeros.Alias, eu to SUPONDO que voce usou interface grafica, ja que voce nao falou nada sobre isso. Enfim, com essas duas suposicoes, o que eu tenho a dizer pra resolver esse problema seria usar uma caixa de texto formatada, disponivel na propria paleta do netbeans. Agora eu volto a dizer: se voce postar o codigo fica mais facil de tentar ajudar.

No mais, bem vindo ao mundo java. =D

Eduardo_Bregaida

Alysson Zanette:
Ola a todos, estou iniciando no mundo JAVA e aprendendos aos poucos seus principios…
Querendo colocar em pratica as teorias dessa magnifica linguagem resolvi por em pratica os estudos
e tentar criar uma calculadora usando o NETBEANS. No começo não foi facil mas depois me achei com
a ajuda de alguns tutorias na internet…
Porem encontrei alguns bugs na minha calculadora quando foi realmente testa-la.
Em especial dois bugs que nao consigo resolver de jeito nenhum o primeiro: minha calculadora
calcula somente dois numeros nao consigo bolar algo que faça com que ela calcule mais de dois numeros
e segundo: ela aceita todos os valores que digito, gostaria de que seu Visor aceitasse somente valores numericos do meu teclado.

Se alguem conseguir me ajudar com esses bugs, no que creio que sejam bugs faceis de resolver para pessoas mais experientes,
ficaria muito grato para poder ir adiante com os estudos java.
T+ :slight_smile:

Para não aceitar valores alphanuméricos veja:
http://download.oracle.com/javase/tutorial/essential/regex/
http://www.guj.com.br/java/103520-regex—expressao-regular-em-java
http://www.guj.com.br/articles/1

Quanto aos valores estude Collections:
http://javafree.uol.com.br/artigo/847654/
http://javafree.uol.com.br/artigo/6953/Cap-7-Objetos-e-conjuntos
http://download.oracle.com/javase/1.4.2/docs/guide/collections/
http://java.sun.com/developer/onlineTraining/collections/Collection.html

Sugiro começar estudando essa apostila: FJ11 - http://www.caelum.com.br/download/caelum-java-objetos-fj11.pdf

Boa Sorte :smiley:

Elizeu_Santos

iniciar no java criando interface com netbeans putz…
acho que você começou de traz para frente cara.

Alysson_Zanette

Obrigado pelas boas vindas…Com isso me empolgo ainda mais a entrar no mundo JAVA…
E bom para responder as demais perguntas eu usei sim a interface do netbeans ao meu ver parecia ser mais facil…
Pelo o que o Elizeu_Santos postou vejo que não é bem assim… Vocês poderiam me dar alguma dica por onde começar a estudar?? Lembrando que
os conceitos de linguagem procedural e sua fundamentação eu ja tenho, limitando-se aos do PASCAL e C. E também já li conceitos sobre HTML e de linguagem OO.
Expecificamente voltado para JAVA, queria por em pratica e resolvi testar com o netbeans, não vou esconder que tomei um laço no começo…hehehehehe
Mas depois que fui mexendo no netbeans e pensando com muita mais muita calma consegui fazer, algumas coisas fui emendando com alguns códigos da internet
e ficou basicamente assim:

package calculadora;

/**
 *
 * @author Alysson
 */
public class JFCalc extends javax.swing.JFrame {
    char operacao;
    String temp, numAntes;
    double num1, num2, resultado;


    /** Creates new form JFCalc */
    public JFCalc() {
        initComponents();
    }

    private void escolheOperacao(char ope) throws NumberFormatException {
        operacao = ope; //guarda a operação desejada
        num1 = Double.parseDouble(jTVisor.getText()); //guarda o texto passando para num1 passando a variavel jTVisor para o double porem como é uma string tera que converte-la usando o Double.perseDouble
        jTVisor.setText(" "); //Limpa os caracteres de jTVisor para chamar o outro numero
    }
        private void numDig(String numero) {
        temp = jTVisor.getText(); //Pega o texto que esta dentro do visor, ouse ja, dentro a variavel jTVisor
        numAntes = temp; //guarda a vriavel temp antes de fazer o calculo para usar depois em backspace
        temp = temp + numero; // Adiciona um valor a temp, adicionando o valor no final por causa do +, sendo assim você pode concatenar uma string, porem nunca desconcatenar
        jTVisor.setText(temp); // adiciona a variavel temp dentro do visor
    }
    private void jB0ActionPerformed(java.awt.event.ActionEvent evt) {                                    
        numDig("0"); 

    }                                   

    private void jB1ActionPerformed(java.awt.event.ActionEvent evt) {                                    
        numDig("1");
    }                                   

    private void jB2ActionPerformed(java.awt.event.ActionEvent evt) {                                    
        numDig("2");
    }                                   

    private void jB3ActionPerformed(java.awt.event.ActionEvent evt) {                                    
        numDig("3");
    }                                   

    private void jB4ActionPerformed(java.awt.event.ActionEvent evt) {                                    
        numDig("4");
    }                                   

    private void jB5ActionPerformed(java.awt.event.ActionEvent evt) {                                    
        numDig("5");
    }                                   

    private void jB6ActionPerformed(java.awt.event.ActionEvent evt) {                                    
        numDig("6");
    }                                   

    private void jB7ActionPerformed(java.awt.event.ActionEvent evt) {                                    
        numDig("7");
    }                                   

    private void jB8ActionPerformed(java.awt.event.ActionEvent evt) {                                    
        numDig("8");
    }                                   

    private void jB9ActionPerformed(java.awt.event.ActionEvent evt) {                                    
        numDig("9");
    }                                   

    private void jBpontoActionPerformed(java.awt.event.ActionEvent evt) {                                        
        numDig(".");
    }                                       

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

    private void jBresultadoActionPerformed(java.awt.event.ActionEvent evt) {                                            
        num2 = Double.parseDouble(jTVisor.getText());

        switch (operacao) {
            case '+':
                resultado = num1 + num2;
                break;
            case '-':
                resultado = num1 - num2;
                break;
            case '*':
                resultado = num1 * num2;
                break;
            case '/':
                resultado = num1 / num2;
                break;
                  
        }
                   jTVisor.setText(String.valueOf(resultado));
                   


    }                                           

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

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

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

    private void jBceActionPerformed(java.awt.event.ActionEvent evt) {                                     
        num2 = 0;
        jTVisor.setText(String.valueOf(num1));
        
    }                                    

    private void jBcrlActionPerformed(java.awt.event.ActionEvent evt) {                                      
        num2 = 0;
        num1 = 0;
        jTVisor.setText(" ");
        
    }                                     

    private void jBbackActionPerformed(java.awt.event.ActionEvent evt) {                                       
        temp = numAntes;
        jTVisor.setText(temp);
        if(numAntes.length()>1){
            numAntes = numAntes.substring(1,numAntes.length()-1);
        }

            else{
            numAntes = "";
        }

    }                                      

    private void jBmaismenosActionPerformed(java.awt.event.ActionEvent evt) {                                            
        if(temp.startsWith("-")){
            temp = temp.replace('-', '+');
        }else if(temp.startsWith("+")){
            temp = temp.replace('+', '-');
        }else {
            temp = '-' + temp;
        }
        jTVisor.setText(temp);

A maneira que tive para montar esse projeto foi a mesma de um curso que fiz de Lógica de Programação em POA-RS, que em seu percurso tinha que criar um calculadora via prompt de comando
muito básica já que a linguagem utilizada era PASCAL e fui pegando mais ou menos a mesma base porem com codigos diferentes é claro, comentando quase tudo senão me perco
e com a utilização da interface tendo a visão de que seria mais “fácil”… :?
Só queria agradecer novamente pelas respostas obtidas, e lembrando que estou começando então para mim toda idéia passada é valida…
Valew a todos T+

Eduardo_Bregaida

Aconselho depois que pegar bem os conceitos de Java que leia o livro Refactoring de Martin Fowler
http://compare.buscape.com.br/refatoracao-aperfeicoando-o-projeto-de-codigo-existente-martin-fowler-[telefone removido].html
8)

[]sssss

escaravelho

Acho melhor começar a fazer na mão a criação de layout’s, vai ser mais fácil entender, e depois pode partir para soluções mais ágeis.

Aconselho o livro “Head First! Java”, o mesmo aborda muitos conceitos bacanas, e tem diversos exercícios para praticar.

Criado 5 de março de 2011
Ultima resposta 7 de mar. de 2011
Respostas 6
Participantes 5