Trabalhando com numeros e JTextField

2 respostas
G
Erro de compilacao :

Delta.java:60: toString() in java.lang.Object cannot be applied to (double)

resultado.setText(toString(result));

^

1 error
botao.addActionListener( new ActionListener() {
                                                                                   
       public void actionPerformed(ActionEvent event)
         {
            //  textoa.getText();
             // textob.getText();
             // textoc.getText();
                                                                                   
            a = Double.parseDouble(textoa.getText());
            b = Double.parseDouble(textob.getText());
            c = Double.parseDouble(textoc.getText());                                                  
            result = b*b - 4*a*c;
                                                                                   
            resultado.setText(toString(result));
                                                                                   
                                                                                   
                                                                                                                                                                       
         }
                                                                                   
                                                                                   
    });

O que fazer??

Obrigado

2 Respostas

D
"gatecrasher":
Erro de compilacao : Delta.java:60: toString() in java.lang.Object cannot be applied to (double) resultado.setText(toString(result)); ^ 1 error
Esse método toString() é da sua classe Delta, e ele não recebe paramêtros (você está tentando passar result para ele). Esse método retorna uma representação String do objeto (ele é implementado inicialmente na classe Object). Use o método estático valueOf() da classe String, que aceita parâmetros de tipos diferentes.
botao.addActionListener( new ActionListener() {

   public void actionPerformed(ActionEvent event)
   {
         a = Double.parseDouble(textoa.getText());
         b = Double.parseDouble(textob.getText());
         c = Double.parseDouble(textoc.getText());
         result = b*b - 4*a*c;

         resultado.setText(String.valueOf(result));
   }
});

Se quiser melhorar a formatação do número, indicando quantidade de casa decimais, etc. Verifica a classe NumberFormat e DecimalFormat, do pacote java.text.

http://java.sun.com/j2se/1.4.2/docs/api/java/text/DecimalFormat.html

Boa sorte.

R

Olá GateCrusher…

se você quiser usar “.toString()” tem que ser em uma instância não primitiva (“double”) e sim na sua empacotadora de tipo (“Double”) que herda o método “.toString()” da classe “Object”.

ficaria assim…

resultado.setText(Double.toString(result));

como disse Dharis… para o valor ficar com o formato que você quer no JTextField você terá que formata-lo.

até mais, Thiago.

Criado 13 de novembro de 2003
Ultima resposta 16 de nov. de 2003
Respostas 2
Participantes 3