Duvida em evento

2 respostas
coca1na

Olha so, to fazendo uma calculadora simples pra faculdade, e to com varias duvidas, uma delas eh a seguinte…

Eu vou postar o codigo aqui, mas na parte de eventos so tem pro botao 0, 1, +, C

dai por exemplo, eu queria que quando apertar o bota 0, apareca no textfield a string 0, dai eu aperto no botao + e o texto fica 0 +
dai eu aperto no botao 1 e o texto fica 0 + 1

mas o que ta acontecendo eh que eu aperto no botao 0, ai o texto fica 0, mas quando eu aperto no botao + o 0 some e fica so o +

acho que deu pra entender…

segue o codigo:
PS.: sei que o codigo nao eh dos melhores mas da pro gasto…

import java.awt.event.*;
import java.awt.*;
import javax.swing.*;

public class Calc extends JFrame {
	
	JPanel painel1, painel2;
	JTextField resultado;
	JButton botao0, botao1, botao2, botao3, botao4,
	botao5, botao6, botao7, botao8, botao9, botaoc, igual, vezes, mais, menos, dividir, ponto;
	
	public static void main (String args[]) {
		
		Calc c = new Calc();
		
	}
	
Calc() {
	
	resultado = new JTextField(15);
	botaoc = new JButton("C");
	botao0 = new JButton("0");
	botao1 = new JButton("1");
	botao2 = new JButton("2");
	botao3 = new JButton("3");
	botao4 = new JButton("4");
	botao5 = new JButton("5");
	botao6 = new JButton("6");
	botao7 = new JButton("7");
	botao8 = new JButton("8");
	botao9 = new JButton("9");
	ponto = new JButton(".");
	igual = new JButton("=");
	vezes = new JButton("*");
	mais = new JButton("+");
	menos = new JButton("-");
	dividir = new JButton("/");
	
	JPanel painel1 = new JPanel();
	getContentPane().add(painel1);
	painel1.add(resultado); resultado.setEditable(false);
	painel1.add(botaoc);
	
	JPanel painel2 = new JPanel();
	painel2.setLayout(new GridLayout(4, 4));
	painel2.add(botao0);
	painel2.add(botao1);
	painel2.add(botao2);
	painel2.add(botao3);
	painel2.add(botao4);
	painel2.add(botao5);
	painel2.add(botao6);
	painel2.add(botao7);
	painel2.add(botao8);
	painel2.add(botao9);
	painel2.add(ponto);
	painel2.add(igual);
	painel2.add(vezes);
	painel2.add(mais);
	painel2.add(menos);
	painel2.add(dividir);
	
	
	
	add(painel1, "North");
	add(painel2, "South");
	
	setTitle("Calculadora v0.1");

	
	pack();
	setVisible(true);
	
	// botaoc
	botaoc.addActionListener(new ActionListener(){ // adiciona o ouvinte
        public void actionPerformed(ActionEvent e) {
            resultado.setText(""); //trantando o evento
    }
}); 
	
	//botao0
	botao0.addActionListener(new ActionListener(){ // adiciona o ouvinte
        public void actionPerformed(ActionEvent e) {
            resultado.setText("0"); //trantando o evento
    }
}); 
	
//	botao1
	botao1.addActionListener(new ActionListener(){ // adiciona o ouvinte
        public void actionPerformed(ActionEvent e) {
            resultado.setText("1"); //trantando o evento
    }
}); 
	
//	mais
	mais.addActionListener(new ActionListener(){ // adiciona o ouvinte
        public void actionPerformed(ActionEvent e) {
            resultado.setText("+"); //trantando o evento
    }
}); 
	
	
	
}
}

PS2.: Se eu colocar por exemplo

resultado.setText( resultado + "+"); //trantando o evento

no textfield da calculadora aprece assim:

javax.swing.JTextField[,5,8,169x20,layout=javax.swing.plaf.basic.BasicTextUI$UpdateHandler,alignmentX=0.0,alignmentY=0.0,border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@1f630dc,flags=296,maximumSize=,minimumSize=,preferredSize=,caretColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],disabledTextColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],editable=false,margin=javax.swing.plaf.InsetsUIResource[top=0,left=0,bottom=0,right=0],selectedTextColor=sun.swing.PrintColorUIResource[r=51,g=51,b=51],selectionColor=javax.swing.plaf.ColorUIResource[r=184,g=207,b=229],columns=15,columnWidth=11,command=,horizontalAlignment=LEADING]1

2 Respostas

T

Isto está incorreto.

resultado.setText( resultado + "+");

Deve ser:

resultado.setText( resultado.getText() + "+");

Note que não é porque não dá erro de compilação que está certo!

coca1na

Nossa, vlw, deu certo… agora vo tentar terminar…

eu tava tentando algo como

//sResultado = sResultado + (String.valueOf(mais.getText())); //resultado.setText(sResultado);

alem de mais complicado nao tava funcionando corretamente
hehe

brigadao hein…

Criado 29 de maio de 2006
Ultima resposta 29 de mai. de 2006
Respostas 2
Participantes 2