Galera,
Meu professor fez um exemplo de calculadora que usa RMI, composta por 4 classes:
[code]import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Calculadora extends Remote
{
public double somar (double a, double b) throws RemoteException;
public double subtrair (double a, double b) throws RemoteException;
public double multiplicar (double a, double b) throws RemoteException;
public double dividir (double a, double b) throws RemoteException;
}[/code]
[code]import java.rmi.server.UnicastRemoteObject;
import java.rmi.RemoteException;
public class CalculadoraImpl extends UnicastRemoteObject implements Calculadora {
public CalculadoraImpl () throws RemoteException
{
super();
}
public double somar (double a, double b) throws RemoteException
{
return a+b;
}
public double subtrair (double a, double b) throws RemoteException
{
return a-b;
}
public double multiplicar (double a, double b) throws RemoteException
{
return a*b;
}
public double dividir (double a, double b) throws RemoteException
{
return a/b;
}
}[/code]
[code]import java.rmi.Naming; // registra o servico no registry
public class ServidorCalculadora
{
public ServidorCalculadora ()
{
try
{
// instancia o objeto q implementa a interface. c eh a referencia
Calculadora c = new CalculadoraImpl();
// registra o serviço ServicoCalculadora no registry
Naming.rebind(“rmi://localhost:1099/ServicoCalculadora”,c);
}
catch (Exception e)
{
System.out.println("Erro: "+e);
}
}
public static void main (String args[])
{
// instancia o objeto
new ServidorCalculadora ();
System.out.println("Servidor inicializado");
}
}[/code]
[code]import java.rmi.Naming;
import java.rmi.RemoteException;
import java.net.MalformedURLException;
import java.rmi.NotBoundException;
public class ClienteCalculadora
{
public static void main(String[] args)
{
try
{
// faz uma referencia ao objeto q implementa o metodo
// metodo lookup faz uma pesquisa pelo metodo especificado. No caso, ServicoCalculadora
Calculadora c = (Calculadora) Naming.lookup(“rmi://localhost/ServicoCalculadora”);
System.out.println( c.somar(4, 3)); //chamada ao serviço remoto somar
System.out.println( c.multiplicar(5,5)); //chamada ao serviço remoto multiplicar
System.out.println( c.subtrair(5,2));
System.out.println( c.dividir(10,5));
}
catch (MalformedURLException murle) // endereco invalido
{
System.out.println(murle);
}
catch (RemoteException re) // problema de comunicacao
{
System.out.println(re);
}
catch (NotBoundException nbe) //
{
System.out.println(nbe);
}
catch (java.lang.ArithmeticException ae) // erros de calculo. Divisao por 0, por exemplo
{
System.out.println(ae);
}
}
}[/code]
O problema é que ele quer que eu faça uma classe TelaCalculadora, com a interface gráfica da calculadora… A tela seria simples, com 3 JTextField’s, sendo um para receber o valor A, um para receber o valor B e um para receber o resultado. Além disso, teria q ter os botoes das operacoes +, -, * e /…
Como sou iniciante em Java, não sei nem que classe herdar, ou implementar… Também não sei como os eventos dos botoes da classe TelaCalculadora chamarão os métodos das classes acima, como a classe TelaCalculadora vai receber o resultado da operacao e tal…
Tem como me ajudarem? Que classe eu tenho q herdar ou implementar na minha classe TelaCalculadora? Como eu faço para que os valores digitados nos JTextField’s da classe TelaCalculadora sejam passados para a classe que efetua as operacoes?
Help me!!
Grato e no aguardo