To tentando fazer uma parada aqui com minha calculadora que quando o cara digitar o numero aparecerá a mensagem ?valor alterado?, to tentando usar o TextEvent, textValueChanged, mas quando uso o T1.addTextListener(this) e mando compilar, o Bluej fala que o ?símbolo? não foi achado
Eu estou querendo saber por que esta dando esse erro!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Calculadora extends JFrame implements ActionListener, TextListener
{
JLabel L1;
static JButton B1,B2,B3,B4,B5,B6,B7,B8,B9,B10;
static JTextField T1,T2,T3;
float N1=0,N2=0,n=0,m=0;
public static void main()
{
JFrame Janela = new Calculadora();
Janela.show();
//para fechar a janela
WindowListener x = new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
};
Janela.addWindowListener(x);
//Ativar os botões
verificar();
}
Calculadora()
{
setTitle("Calculadora");
setSize(300,400);
setLocation(200,100);
getContentPane().setBackground(Color.gray);
getContentPane().setLayout(new GridLayout(7,2));
T1 = new JTextField();
[color=red]T1.addTextListener(this);[/color]
T1.setText("");
T2 = new JTextField();
T3 = new JTextField();
T3.setEditable(false);//Define o textField como leitura somente
L1 = new JLabel("Calc.Cabista");
L1.setForeground(Color.red);
L1.setFont(new Font("",Font.BOLD,18));
L1.setBackground(Color.black);
B1 = new JButton("+");
B1.addActionListener(this);
B1.setEnabled(false);
B2 = new JButton("-");
B2.addActionListener(this);
B2.setEnabled(false);
B3 = new JButton("*");
B3.addActionListener(this);
B3.setEnabled(false);
B4 = new JButton("/");
B4.addActionListener(this);
B4.setEnabled(false);
B5 = new JButton("Raiz Cub.");
B5.addActionListener(this);
B6 = new JButton("Raiz Quad.");
B6.addActionListener(this);
B7 = new JButton("Seno");
B7.addActionListener(this);
B8 = new JButton("Cosseno");
B8.addActionListener(this);
B9 = new JButton("Tangente");
B9.addActionListener(this);
B10 = new JButton("BackSpace");
B10.addActionListener(this);
//------
getContentPane().add(T1);
getContentPane().add(T2);
getContentPane().add(B1);
getContentPane().add(B2);
getContentPane().add(B3);
getContentPane().add(B4);
getContentPane().add(B5);
getContentPane().add(B6);
getContentPane().add(B7);
getContentPane().add(B8);
getContentPane().add(B9);
getContentPane().add(B10);
getContentPane().add(T3);
getContentPane().add(L1);
}
public static void verificar(){
int i=0;
do{
if((!(T1.getText().equals(""))) && (!(T2.getText().equals(""))))
{
B1.setEnabled(true);
B2.setEnabled(true);
B3.setEnabled(true);
B4.setEnabled(true);
System.out.println("entrou");
i=1;
}
else if(T1.getText().equals("") || T2.getText().equals("")){
System.out.println("for");
B1.setEnabled(false);
B2.setEnabled(false);
B3.setEnabled(false);
B4.setEnabled(false);
i=0;
}
}while(i==0);// fazer a parada do e.getSource();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==B10){
T1.setText("");
T2.setText("");
T3.setText("");
B1.setEnabled(false);
B2.setEnabled(false);
B3.setEnabled(false);
B4.setEnabled(false);
return;
}
double resultado=0,rad=0;
try{
if(e.getSource()!=B5 && e.getSource()!=B6 && e.getSource()!=B7 && e.getSource()!=B8 && e.getSource()!=B9 ){ // quando for fazer os outros não se esquece dessa parada, tem que declarar o botão como
//diferente do que você esta fazendo para não entrar para fazer com dois valores
N1 = Float.parseFloat(T1.getText());
N2 = Float.parseFloat(T2.getText());
}
else{//---------------------------- Raiz Cubica --------------------------
if(e.getSource()==B5){ // se b5 for apertado entra para raiz cubica
if(T1.getText().trim().isEmpty()){// Verifica se N1 esta vazio, se estiver faz
T3.setText("Ta errado, galo");
T2.setText("");
return;
}
else{ if(T2.getText().trim().isEmpty()){// Verifica se o campo esta vazio, se estiver faz N1
N1 = Float.parseFloat(T1.getText());//recebe o valor do campo 1, Campo da Esquerda T1
resultado = Math.cbrt(N1);//faz o calculo
}
else{//Se os dois campos estiverem com valor e forem iguais faz a raiz quadrada
N1 = Float.parseFloat(T1.getText());//recebe o valor do campo 1, Campo da Esquerda T1
N2 = Float.parseFloat(T2.getText());//recebe o valor do campo 2, Campo da direita T2
if(N1 == N2){//verifica se são iguais
N1 = Float.parseFloat(T1.getText());//tanto faz o campo que eu iria pegar
resultado = Math.cbrt(N1);//faz o calculo
T2.setText("");
}
else {
N1 = Float.parseFloat(T1.getText());//tanto faz o campo que eu iria pegar
resultado = Math.cbrt(N1);
T2.setText("");
}
}
}
}
//----------------------------- Raiz Quadrada --------------------------
if(e.getSource()==B6){ // se b6 for apertado entra para raiz quadrada
if(T1.getText().trim().isEmpty()){// Verifica se N1 esta vazio, se estiver faz
T3.setText("Ta errado, galo");
T2.setText("");
return;
}
else if(T2.getText().trim().isEmpty()){// Verifica se o campo esta vazio, se estiver faz N1
N1 = Float.parseFloat(T1.getText());//recebe o valor do campo 1, Campo da Esquerda T1
resultado = Math.sqrt(N1);//faz o calculo
}
else{//Se os dois campos estiverem com valor e forem iguais faz a raiz quadrada
N1 = Float.parseFloat(T1.getText());//recebe o valor do campo 1, Campo da Esquerda T1
N2 = Float.parseFloat(T2.getText());//recebe o valor do campo 2, Campo da direita T2
if(N1 == N2){//verifica se são iguais
N1 = Float.parseFloat(T1.getText());//tanto faz o campo que eu iria pegar
resultado = Math.sqrt(N1);//faz o calculo
T2.setText("");
}
else {
N1 = Float.parseFloat(T1.getText());//tanto faz o campo que eu iria pegar
resultado = Math.sqrt(N1);
T2.setText("");
}
}
}
if(e.getSource()==B7){ // se b7 for apertado entra para raiz cubica
if(T1.getText().trim().isEmpty()){// Verifica se N1 esta vazio, se estiver faz
T3.setText("Ta errado, galo");
T2.setText("");
return;
}
else if(T2.getText().trim().isEmpty()){// Verifica se o campo esta vazio, se estiver faz N1
N1 = Float.parseFloat(T1.getText());//recebe o valor do campo 1, Campo da Esquerda T1
rad=Math.toRadians(N1);//acha rad//faz o calculo
resultado = Math.sin(rad);//faz o calculo
}
else{//Se os dois campos estiverem com valor e forem iguais faz a raiz quadrada
N1 = Float.parseFloat(T1.getText());//recebe o valor do campo 1, Campo da Esquerda T1
N2 = Float.parseFloat(T2.getText());//recebe o valor do campo 2, Campo da direita T2
if(N1 == N2){//verifica se são iguais
N1 = Float.parseFloat(T1.getText());//tanto faz o campo que eu iria pegar
rad=Math.toRadians(N1);//acha rad//faz o calculo
resultado = Math.sin(rad);//faz o calculo
T2.setText("");
}
else {
N1 = Float.parseFloat(T1.getText());//tanto faz o campo que eu iria pegar
rad=Math.toRadians(N1);//acha rad//faz o calculo
resultado = Math.sin(rad);//faz o calculo
T2.setText("");
}
}
}
if(e.getSource()==B8){ // se b7 for apertado entra para raiz cubica
if(T1.getText().trim().isEmpty()){// Verifica se N1 esta vazio, se estiver faz
T3.setText("Ta errado, galo");
T2.setText("");
return;
}
else if(T2.getText().trim().isEmpty()){// Verifica se o campo esta vazio, se estiver faz N1
N1 = Float.parseFloat(T1.getText());//recebe o valor do campo 1, Campo da Esquerda T1
rad=Math.toRadians(N1);//acha rad//faz o calculo
resultado = Math.cos(rad);//faz o calculo
}
else{//Se os dois campos estiverem com valor e forem iguais faz a raiz quadrada
N1 = Float.parseFloat(T1.getText());//recebe o valor do campo 1, Campo da Esquerda T1
N2 = Float.parseFloat(T2.getText());//recebe o valor do campo 2, Campo da direita T2
if(N1 == N2){//verifica se são iguais
N1 = Float.parseFloat(T1.getText());//tanto faz o campo que eu iria pegar
rad=Math.toRadians(N1);//acha rad//faz o calculo
resultado = Math.cos(rad);//faz o calculo
T2.setText("");
}
else {
N1 = Float.parseFloat(T1.getText());//tanto faz o campo que eu iria pegar
rad=Math.toRadians(N1);//acha rad//faz o calculo
resultado = Math.cos(rad);//faz o calculo
T2.setText("");
}
}
}
if(e.getSource()==B9){ // se b7 for apertado entra para raiz cubica
if(T1.getText().trim().isEmpty()){// Verifica se N1 esta vazio, se estiver faz
T3.setText("Ta errado, galo");
T2.setText("");
return;
}
else if(T2.getText().trim().isEmpty()){// Verifica se o campo esta vazio, se estiver faz N1
N1 = Float.parseFloat(T1.getText());//recebe o valor do campo 1, Campo da Esquerda T1
rad=Math.toRadians(N1);//acha rad//faz o calculo
resultado = Math.tan(rad);//faz o calculo
}
else{//Se os dois campos estiverem com valor e forem iguais faz a raiz quadrada
N1 = Float.parseFloat(T1.getText());//recebe o valor do campo 1, Campo da Esquerda T1
N2 = Float.parseFloat(T2.getText());//recebe o valor do campo 2, Campo da direita T2
if(N1 == N2){//verifica se são iguais
N1 = Float.parseFloat(T1.getText());//tanto faz o campo que eu iria pegar
rad=Math.toRadians(N1);//acha rad//faz o calculo
resultado = Math.tan(rad);//faz o calculo
T2.setText("");
}
else {
N1 = Float.parseFloat(T1.getText());//tanto faz o campo que eu iria pegar
rad=Math.toRadians(N1);//acha rad//faz o calculo
resultado = Math.tan(rad);//faz o calculo
T2.setText("");
}
}
}
}
}
catch (NumberFormatException erro)
{
T3.setText("Ta errado, galo");
return;
}
if(e.getSource()==B1)
{resultado = N1 + N2;}
if(e.getSource()==B2)
{resultado = N1 - N2;}
if(e.getSource()==B3)
{resultado = N1 * N2;}
if(e.getSource()==B4)
{resultado = N1 / N2;}
T3.setText(""+resultado);
}
public void textValueChanged(TextEvent e)
{
T3.setText("T1 alterado");
}
}
Obs: tenho que usar desse jeito, porque to precisando dele para outra coisa também.
Desde já muito obrigado!