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