1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Java - Calculadora (codigo) Help - RESOLvIDO

Discussão em 'Programação' iniciada por sdvferreira, 31 de Maio de 2007. (Respostas: 0; Visualizações: 9575)

  1. sdvferreira

    sdvferreira Power Member

    viva, estou com alguns problemas no codigo que ando a fazer em java swing, um deles é que quando faço = ele não leva os valores das somas nem das subtracções.. se me poderem ajudar.. agradecia
    Código:
    
    
    
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    
    public class Calculadora extends JFrame implements ActionListener, MouseListener{
    
        
        private JTextField visor;
        private JLabel tipo;
        private JButton calcZone[], escudos, euros, mais, menos, igual;
        private Container cont;
        private JPanel escudosEuros, displayMain, display , teclado, bIgual;
    
        
        Calculadora(){
            
                
                // zona norte
                
                // 1º linha
                
                display = new JPanel(new FlowLayout());
                
                visor = new JTextField(9);
                visor.setText("0");
                visor.setHorizontalAlignment(JTextField.RIGHT);
                visor.addMouseListener(this);
                
                display.add(visor);
                
                tipo = new JLabel("euros");
                display.add(tipo);
                
                
                // 2º linha
                escudosEuros = new JPanel(new FlowLayout());
                
                escudos = new JButton("escudos");
                escudosEuros.add(escudos);
                escudos.addActionListener(this);
                
                euros = new JButton("euros");
                escudosEuros.add(euros);
                euros.addActionListener(this);
                
                // adiciona 1º e 2º linha à zona norte
                
                displayMain = new JPanel(new GridLayout(2,1));
                
                displayMain.add(display);
                displayMain.add(escudosEuros);
                
                // zona centro
                
                teclado = new JPanel(new GridLayout(3,4));
                
                calcZone = new JButton[10];
                for(int i=1; i<=8; i++){
                    
                    calcZone[i] = new JButton(""+i);
                    teclado.add(calcZone[i]);
                    calcZone[i].setMnemonic(i);
                    calcZone[i].addActionListener(this);
                }
                
                
                mais = new JButton("+");
                teclado.add(mais);
                //mais.setMnemonic('+'); para não aparecer no ecra
                mais.addActionListener(this);
                
                calcZone[9] = new JButton("9");
                teclado.add(calcZone[9]);
                calcZone[9].setMnemonic(9);
                calcZone[9].addActionListener(this);
                
                
                calcZone[0] = new JButton("0");
                teclado.add(calcZone[0]);
                calcZone[0].setMnemonic(0);
                calcZone[0].addActionListener(this);
                
                menos = new JButton("-");
                teclado.add(menos);
                menos.setMnemonic('-');
                //menos.addActionListener(this); para não aparecer no ecra
            
                //Zona South
                
                bIgual = new JPanel(new FlowLayout());
                
                igual = new JButton("=");
                bIgual.add(igual);
                igual.addActionListener(this);
                
            // usar o conteiner para visualizar
                
                cont = getContentPane(); // Obtém o content pane da applet
                cont.setLayout (new BorderLayout());
                
                cont.add(displayMain, "North");
                cont.add(teclado, "Center");
                cont.add(bIgual,"South");
            }
        
        
        public static void main (String[] args){
            
            Frame f = new Calculadora(); 
            f.setSize (300, 300);
            f.setVisible(true);
            }
        
        
        public void actionPerformed(ActionEvent e) {
            
            //System.out.println(((JButton)e.getSource()).getText());
            
            float temp, resultado=0;
            String valor, valor1 ="", valor2= "";
            Boolean operacao=null;     //soma true
                                        //subtracao false
        
            if( e.getSource().equals(escudos)){
                
                tipo.setText( "esc" );
                temp = Float.parseFloat(( visor.getText()) );
                temp *= 200;
                visor.setText( "" + temp );
            }
            
            
            if( e.getSource().equals(euros)){
                
                tipo.setText( "euros" );
                temp = Float.parseFloat( (visor.getText()) );
                temp /= 200;
                visor.setText("" + temp);
            }
            
                
                switch (((JButton)e.getSource()).getText().charAt(0)) { // getText ir buscar a string do nome do butunn e o charAt vai a possicao...
                
                case '1' :
                    System.out.println("entrou 1");
                    valor = visor.getText();
                    System.out.println(valor);
                    valor=valor.concat("1");
                    System.out.println(valor);
                    visor.setText(valor);
                    break;
                    
                case '2' :
                    
                    valor = visor.getText();
                    valor=valor.concat("2");
                    //System.out.println(valor);
                    visor.setText(valor);
                    
                    break;
                    
                case '3' :
                    
                    valor = visor.getText();
                    valor=valor.concat("3");
                    //System.out.println(valor);
                    visor.setText(valor);
                    
                    break;
                
                case '4' :
                    
                    valor = visor.getText();
                    valor=valor.concat("4");
                    //System.out.println(valor);
                    visor.setText(valor);
                    
                    break;
                    
                case '5' :
                    
                    valor = visor.getText();
                    valor=valor.concat("5");
                    //System.out.println(valor);
                    visor.setText(valor);
                    
                    break;
                    
                case '6' :
                    
                    valor = visor.getText();
                    valor=valor.concat("6");
                    //System.out.println(valor);
                    visor.setText(valor);
                    break;
                    
                case '7' :
                    
                    valor = visor.getText();
                    valor=valor.concat("7");
                    //System.out.println(valor);
                    visor.setText(valor);
                    break;
    
                
                case '8' :
                    
                    valor = visor.getText();
                    valor=valor.concat("8");
                    //System.out.println(valor);
                    visor.setText(valor);
                    break;
    
                
                case '9' :
                    
                    valor = visor.getText();
                    valor=valor.concat("9");
                    //System.out.println(valor);
                    visor.setText(valor);
                    break;
                    
                case '+' :
                    
                    
                    valor1 = visor.getText();
                    visor.setText(valor1);
                    visor.setText("");    
                    
                    operacao=true;
                    System.out.println(valor1+"----"+operacao);
                    break;
                    
                case '-' :
                    
                    valor2 = visor.getText();
                    System.out.println(""+valor2);
                    visor.setText(valor2);
                    visor.setText("");
                    System.out.println(valor2+"----"+operacao);
                    operacao=false;
                    
                    break;
                    
                case '=' :
                    
                    System.out.println("li teclado");
                    valor = visor.getText();
                    System.out.println(""+valor+"..."+valor1+"-----"+valor2+"--"+operacao);
                    
                    if(operacao){
                        
                        resultado = Float.parseFloat(valor1) + Float.parseFloat(valor);
                        System.out.println(""+valor+"------"+resultado+"");
                    
                    }else {
                        
                        resultado = Float.parseFloat(valor)- resultado;
                        System.out.println(""+valor+"------"+resultado+"");
                    }
    
                    
                    break;
                
    
                default:
                    
                }
            
        }
    
        class Terminador extends WindowAdapter 
        {
    
            public void windowClosing(WindowEvent e)
            {
            System.exit(0);
            }
        }
    
        public void mouseClicked(MouseEvent e) {
            // TODO Auto-generated method stub
            
        }
    
    
        public void mouseEntered(MouseEvent e) {
            // TODO Auto-generated method stub
            
        }
    
    
        public void mouseExited(MouseEvent e) {
            // TODO Auto-generated method stub
            
        }
    
    
        public void mousePressed(MouseEvent e) {
            // TODO Auto-generated method stub
            
            if(e.getSource().equals(visor)){
                System.out.println("asd");
                visor.setText("");
                
            }
            
        }
    
    
        public void mouseReleased(MouseEvent e) {
            // TODO Auto-generated method stub
            
        }
        
    }
    
    
    
    
    
    
    
    
    
     
    Última edição: 1 de Junho de 2007

Partilhar esta Página