Programación General > Java
Clase que invoca un metodo de otra clase
(1/1)
danielc1657:
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.
Boxcarpilot:
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
arielb:
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
Boxcarpilot:
Solucionado, el try cactch funciona pero preferi el throw Gracias
Gracia spor la ayuda
Navegación
Ir a la versión completa