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
void Pac() throws IOException
así que al invocarlo puedes hacer esto
Código: Text
try{
Pac();
}catch(IOExceptio e){
}
o nuevamente envoler el método Avanzar
Código: Text
void Avanzar(int v) throws IOException{
Pac();
}
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