Java - Calculadora (codigo) Help - RESOLvIDO

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:
Back
Topo