Erro com mais de um metodo

8 respostas
H

Pessoal,
Estou com um problema aqui ...

import javax.swing.JOptionPane;

class calculadora{
	public static void main(String[] args){
		double valorA;
		double valorB;
		String opera;
	
		valorA = Double.parseDouble(resgata("abc","def"));
		valorB = Double.parseDouble(resgata("hij","klm"));
			info("Coloque a operação","Titulo");
		opera  = resgata("Digite uma operação!");
	}
		// Metodo que retorna o valor digitado
	public String resgata( String msg , String titulo ){	
		return JOptionPane.showInputDialog(null,msg,titulo,JOptionPane.DEFAULT_OPTION);
	}
	public String info( String info , String titulo ){
		return JOptionPane.showMessageDialog(null,msg,titulo,JOptionPane.INFORMATION_MESSAGE);
	}
}

Está retornando os seguintes erros

C:\root\java\bin>javac %CLASSPATH%\estudos\math\calculadora.java H:\home\java\estudos\math\calculadora.java:9: non-static method resgata(java.lan g.String,java.lang.String) cannot be referenced from a static context valorA = Double.parseDouble(resgata("abc","def")); ^ H:\home\java\estudos\math\calculadora.java:10: non-static method resgata(java.la ng.String,java.lang.String) cannot be referenced from a static context valorB = Double.parseDouble(resgata("hij","klm")); ^ H:\home\java\estudos\math\calculadora.java:11: non-static method info(java.lang. String,java.lang.String) cannot be referenced from a static context info("Coloque a operaþÒo","Titulo"); ^ H:\home\java\estudos\math\calculadora.java:12: resgata(java.lang.String,java.lan g.String) in calculadora cannot be applied to (java.lang.String) opera = resgata("Digite uma operaþÒo!"); ^ H:\home\java\estudos\math\calculadora.java:19: cannot resolve symbol symbol : variable msg location: class calculadora return JOptionPane.showMessageDialog(null,msg,titulo,JOptionPane .INFORMATION_MESSAGE); ^ H:\home\java\estudos\math\calculadora.java:19: incompatible types found : void required: java.lang.String return JOptionPane.showMessageDialog(null,msg,titulo,JOptionPane .INFORMATION_MESSAGE); ^ 6 errors

Sei lá o porque... não é possivel fazer o que eu estou tentando fazer?
Tipo criar um metodo com uma função especifica e chama-la em main ?

até... :)

8 Respostas

R

Olah,

Declara teus metodos como static… e ve se da certo…

[]'s

B

H:\home\java\estudos\math\calculadora.java:12: resgata(java.lang.String,java.lan g.String) in calculadora cannot be applied to (java.lang.String) opera = resgata("Digite uma operaþÒo!"); ^

método resgata necessita de dois parametros String.

H:\home\java\estudos\math\calculadora.java:19: cannot resolve symbol symbol : variable msg location: class calculadora return JOptionPane.showMessageDialog(null,msg,titulo,JOptionPane .INFORMATION_MESSAGE); ^

o que é msg? quem é msg? de onde vem msg?

H:\home\java\estudos\math\calculadora.java:19: incompatible types found : void required: java.lang.String return[b] JOptionPane.showMessageDialog(null,msg,titulo,JOptionPane .INFORMATION_MESSAGE); [/b] ^

Este método não retorna nada (found : void )
Você está tentando retornar um String(required: java.lang.String )

J

Bejeto, primeiro você deve declarar os seus métodos como static, no método info (), creio que você tenha se confudido, pois o método showMessageDialog() não retorna valor, ele é só para exibição de message na tela, e quando você chama este método você usa uma variável não declarada “msg” acho que você estava querando colocar a variável “info”, teste seu programa com este formato:

import javax.swing.JOptionPane;

class calculadora{

public static void main(String[] args){

double valorA;

double valorB;

String opera;
valorA = Double.parseDouble(resgata("abc","def"));
  valorB = Double.parseDouble(resgata("hij","klm"));
     info("Coloque a operação","Titulo");
  opera  = resgata("Digite uma operação!", "");
}

// Metodo que retorna o valor digitado

public static String resgata( String msg , String titulo ){

return JOptionPane.showInputDialog(null,msg,titulo,JOptionPane.DEFAULT_OPTION);

}

public static void info( String info , String titulo ){

JOptionPane.showMessageDialog(null,info,titulo,JOptionPane.INFORMATION_MESSAGE);

}

}

johnny

B

Opa opa… eu escrevi pra ajudar o cara… não fui eu que postei a dúvida…ehehehe

H

Aew pessoal
Vlw pelos toques e talz...ambos foram de grande serventia...
Tipo nem repara nas brechas que eu dei aki... tipo faltando parametros em metodos que eu criei e talz...

Arrumei o que dava para arrumar e:

import javax.swing.JOptionPane;

class calculadora{
	public static void main(String[] args){
		double valorA;
		double valorB;
		String opera;
	
		valorA = Double.parseDouble(resgata("abc","def"));
		valorB = Double.parseDouble(resgata("hij","klm"));
			info("Coloque a operação","Titulo");
		opera  = resgata("Digite uma operação!","mol");
	}
		// Metodo que retorna o valor digitado
	public static String resgata( String msg , String titulo ){
		return 

JOptionPane.showInputDialog(null,msg,titulo,JOptionPane.DEFAULT_OPTION);
	}
	public static String info( String info , String titulo ){
		return 

JOptionPane.showMessageDialog(null,info,titulo,JOptionPane.WARNING_MESSAGE);
	}
}

E o Compilador:

C:\root\java\bin>javac %CLASSPATH%\estudos\math\calculadora.java H:\home\java\estudos\math\calculadora.java:19: incompatible types found : void required: java.lang.String return JOptionPane.showMessageDialog(null,info,titulo,JOptionPan e.WARNING_MESSAGE); ^ 1 error

Tá falando o barato do void e ele quer string... num sakei isso ainda...

até... :)

B
C:\root\java\bin>javac %CLASSPATH%\estudos\math\calculadora.java H:\home\java\estudos\math\calculadora.java:19: incompatible types found : void required: java.lang.String return JOptionPane.showMessageDialog(null,info,titulo,JOptionPan e.WARNING_MESSAGE); ^ 1 error

JOptionPane.showMessageDialog(....) não retorna nenhum valor(void)

Mas aqui neste trecho, você disse que o método retornava String. Ele não deve retornar nada, pois apenas exibirá a mensagem!
no outro método há um retorno String pois você faz a leitura de dados do usuário.

public static [b]String [/b]info( String info , String titulo ){ 
      return 

JOptionPane.showMessageDialog(null,info,titulo,JOptionPane.WARNING_MESSAGE); 
   }
D

Tira o return…

faz só JOptionPane.show…

[]'s

H

E ai hlegius blz ???

Velho e detelhe é o seguinte…

o showMessageDialog, naum tem retorno… seu metodo info ta espeando um retorno String é o show messageDialog retorna void , muda a assintatura do seu metodo para o tipo void e naum retorna nada…

Abraços…

Criado 11 de abril de 2005
Ultima resposta 13 de abr. de 2005
Respostas 8
Participantes 6