Java - Clases

 
Vista:

Clases

Publicado por Jose Luis (113 intervenciones) el 24/04/2006 23:57:52
Hola, estoy empezando a programar en java y me surgio un problema creo que es algo facil de solucionar pero nose como, lo que pasa es que tengo 2 clases en un mismo archivo, uno es la clase canvas y otro una clase mia, lo que quiero hacer es que me reconozca las variables que utilizo en la clase me las "reconozca en otras", este es mi codigo.El error que sale es que el arreglo puntos[ ], no esta declarado en la clase canvas, que puedo hacer para que las variables que yo utilize me las reconosca en cualquier clase que utilize ?

Realmente el boton que puse no tiene ninguna utilidad debido a que estaba haciendo un programa mas grande y solamente saque esta parte, el fin de este programa es que al momento de arrastrar el boton sobre Canvas se pinte la pantalla.
---------------------------------------------------------------------------------------------------------------------------------------
import java.awt.*;
import javax.swing.*;

class MiCanvas extends Canvas
{

public MiCanvas()
{
this.setBackground(Color.green);
}

public void paint(Graphics g)
{

super.paint(g);
g.setColor(Color.WHITE);

for(int i=0;i<puntos.length&&puntos[i]!=null; i++)
{
g.fillOval(puntos[i].x,puntos[i].y,10,10);

}



}

}

public class can11 extends JFrame
{
public int cuentaPuntos=0;
public Point puntos[]=new Point[1000000];

public can11()
{
Container contenedor=getContentPane();
contenedor.setLayout(new BorderLayout());

MiCanvas miobjetocanvas=new MiCanvas();

JPanel p1=new JPanel();
p1.add(new JButton("HOLA"));

contenedor.add(p1,BorderLayout.NORTH);
contenedor.add(miobjetocanvas,BorderLayout.CENTER);
setSize(250,250); show();

}

public static void main(String args[])
{
can11 x=new can11();
x.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}


public void metodopintar()
{


addMouseMotionListener
(new MouseMotionAdapter()
{
public void mouseDragged(MouseEvent e)
{

if(cuentaPuntos<puntos.length)
{
puntos[cuentaPuntos]=e.getPoint(); //el getPoint devuelve una coordenada al arreglo
++cuentaPuntos;
repaint(puntos);
}

}
}
);
}
}

---------------------------------------------------------------------------------------------------------------------------------
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Clases

Publicado por manru (161 intervenciones) el 25/04/2006 01:41:12
Hola declaralo estatico y accede de esta manera...

public static Point puntos[]=new Point[1000000];

Accedes asi

g.fillOval(can11.puntos[i].x,can11.puntos[i].y,10,10);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar