SoloCodigo

Programación General => Java => Mensaje iniciado por: danielc1657 en Jueves 11 de Septiembre de 2008, 20:00

Título: Clase que invoca un metodo de otra clase
Publicado por: danielc1657 en Jueves 11 de Septiembre de 2008, 20:00
Buenas tardes.

Tengo una clase (lienzo) que implementa el metodo
public void paint (Graphics g){
.
.
}

y tengo 3 clases ( corredor1, corredor2, corredor3) que llaman a este metodo con "repaint", pero necesito saber cual es la clase que lo ha llamado y segun esto incrementar una variable que representa la coordenada en X que redibuja el objeto que se esta moviendo dependiendo de esto.

si clase que llama a repaint() = corredor1
   x1++;
sino si clase que llama a repaint() = corredor2
   x2++;
sino si clase que llama a repaint()= corredor3
   x3++;
g.drawRect(x1, y, 25,25);
g.drawOval(x2, y, 25,25);
g.drawRect(x3, y, 25,20);

//si la clase que llama al metodo repaint(); es corredor1, se incrementa x1 y asi sucesivamente.


o en su defecto necesito la forma de llamar al metodo repaint(); con parametros que segun he averiguado no es posible.


Agradezco cualquier ayuda. hasta pronto.
Título: Re: Clase que invoca un metodo de otra clase
Publicado por: Boxcarpilot en Domingo 12 de Octubre de 2008, 15:01
Tambien tengo un problema similar, es el la linea 16, al momento de llamar a Pack() luego de un IF:


import java.io.*;
class Diag
{
   
    int esA,esB,esC, esD;
    int a,b,c,d;
   
    void Avanzar(int v)
    {
       if (v==0)
          {
          System.out.println("Gracias, saliendo del programa... n");
          }
       else
         {
            Pac(); throws IOException;
         }
    }
   
   
    void Pac() throws IOException
    {
       
    System.out.println("Colocar el numero 1(uno) si hay sintoma, o el 2(dos) si no lo hay n");
   
    InputStreamReader ip=new InputStreamReader(System.in);
   BufferedReader w= new BufferedReader(ip);
   System.out.println("¿Tiene infeccion pulmonar?n");
    esA = Integer.parseInt(w.readLine());
   
    InputStreamReader tm=new InputStreamReader(System.in);
   BufferedReader br= new BufferedReader(tm);
   System.out.println("¿Tiene alta temperatura?n");
   esB=Integer.parseInt(br.readLine());
   
   InputStreamReader re=new InputStreamReader(System.in);
   BufferedReader ff= new BufferedReader(re);
   System.out.println("¿Tiene resfriado?n");
   esC=Integer.parseInt(ff.readLine());
   
   InputStreamReader ll=new InputStreamReader(System.in);
   BufferedReader pp= new BufferedReader(tm);
   System.out.println("¿Tiene la garganta irritada?n");
   esD=Integer.parseInt(pp.readLine());
   
   Fin (esA,esB,esC,esD);
       
    }


En esa misma linea, manda dos errores:

1-not a statement
2-illegal start of expression

Porq esta pasando esto?

Gracias
Título: Re: Clase que invoca un metodo de otra clase
Publicado por: arielb en Lunes 13 de Octubre de 2008, 17:12
Hola el método repaint se deriva de la clase Canvas pero te recomiendo que leas un poco aquí tal ves te ayude http://www.sc.ehu.es/sbweb/fisica/cursoJava/applets/events/canvas.htm y http://www.sc.ehu.es/sbweb/fisica/cursoJava/fundamentos/herencia/interfaces.htm



y para Boxcarpilot tú problema está en como manejas la exception

al hacer esto lo que estás pidiendo que todas las ioexception que se den dentro de ese proceso las atrape y las lanze a donde sea implementado
Código: Text
  1. void Pac() throws IOException
  2.  

así que al invocarlo puedes hacer esto

Código: Text
  1. try{
  2.   Pac();
  3. }catch(IOExceptio e){
  4. }
  5.  
  6.  

o nuevamente envoler el método Avanzar

Código: Text
  1. void Avanzar(int v) throws IOException{
  2.    Pac();
  3. }
  4.  

suerte
Título: Re: Clase que invoca un metodo de otra clase
Publicado por: Boxcarpilot en Lunes 13 de Octubre de 2008, 23:52
Solucionado, el try cactch funciona pero preferi el throw Gracias

Gracia spor la ayuda