View Full Version : Java - Calculadora (codigo) Help - RESOLvIDO


sdvferreira
31-05-2007, 18:43
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




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()).getTex t());

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

}

}