Javafree
Página Inicial do Fórum > GUI - (Applets, Swing, SWT, etc)

Problema Calculadora feita com GUI.



Criar novo tópico   Responder tópico


  1. Costelinha
    Posts:1


    Comment Arrow

    Publicado em: 15/07/2016 10:44:42

    Fiz uma calculadora por meio de GUI, mas não estou conseguindo fazer funcionar. Revisei todo o código e fiz alguns testes, acredito que o problema esteja no handler dos JTextField. Quando faço a operação na calculadora sempre aparece 0, acho que os números digitados não estão sendo armazenados dentro da classe TextFieldHandler. Segue o código:


    import java.awt.FlowLayout;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import javax.swing.JFrame;
    import javax.swing.JTextField;
    import javax.swing.JButton;
    import java.lang.NumberFormatException;

    public class frame1 extends JFrame {

    private JButton [] botao = new JButton [4];
    private JTextField [] text = new JTextField [3];
    private calculadora c = new calculadora ();

    public frame1 () {
    super ("Testing" );
    setLayout(new FlowLayout());
    text[0] = new JTextField (" " );
    add (text[0]);
    text[1] = new JTextField (" " );
    add (text[1]);
    botao[0] = new JButton ("+" ) ;
    add(botao[0]);
    botao[1] = new JButton ("-" );
    add(botao[1]);
    botao[2] = new JButton ("*" );
    add(botao[2]);
    botao[3] = new JButton ("/" );
    add (botao[3]);
    text[2] = new JTextField (" " );
    text[2].setEditable(false);
    add (text[2]);
    TextFieldHandler handler1 = new TextFieldHandler();
    for (int i = 0; i<3; i++) {
    text.addActionListener(handler1);
    }
    ButtonHandler handler2 = new ButtonHandler ();
    for (int i = 0; i<4; i++) {
    botao.addActionListener(handler2);
    }
    }

    private class TextFieldHandler implements ActionListener {
    public void actionPerformed (ActionEvent e) {
    if (e.getSource() == text[0]) {
    c.setV1(Integer.parseInt(e.getActionCommand()));
    }
    if (e.getSource() == text[1]) {
    c.setV2(Integer.parseInt(e.getActionCommand()));
    }
    }
    }

    private class ButtonHandler implements ActionListener {
    public void actionPerformed (ActionEvent e) {
    if (e.getSource() == botao[0]) {
    text[2].setText(""+c.soma());
    }
    if (e.getSource() == botao[1]) {
    text[2].setText(""+c.sub());
    }
    if (e.getSource() == botao[2]) {
    text[2].setText(""+c.mult());
    }
    if (e.getSource() == botao[3]) {
    text[2].setText(""+c.div());
    }

    }
    }
    }

    -Classe calculadora:

    public class calculadora {
    private int v1,v2;

    public int getV1() {
    return v1;
    }

    public void setV1(int v1) {
    this.v1 = v1;
    }

    public int getV2() {
    return v2;
    }

    public void setV2(int v2) {
    this.v2 = v2;
    }

    public calculadora(){

    }

    public calculadora (int v1, int v2 ){
    setV1(v1);
    setV2(v2);
    }

    public int soma(){

    return (this.v1+this.v2);
    }

    public int sub(){
    return this.v1-this.v2;
    }

    public int mult(){
    return this.v1*this.v2;
    }

    public int div(){
    return this.v1/this.v2;
    }

    }

    Obs.: O código que mostra a janela está na main.


    Obrigado pela ajuda!



  1. Relacionados