为何无论用什么颜色在JPanel 上画了图形后,然后用函数取该范围内点的像素值都不变.
protected void paintComponent(Graphics g) 
{
super.paintComponent(g);
/*g.setColor(new Color(200,200,200));
//setBackground(new Color(200,200,200));*/
int n=N-1;
//int xBegin,xEnd,yBegin,yEnd;
r= getWidth()/(2*N) ;
/*System.out.println(r+","+getWidth()+","+getHeight());
for (int i=1;i<2*n;i+=2)
{
g.setColor(new Color(200,200,200));
//g.drawLine(i-1,r,i,r);
g.fillOval(i*r-r,r-r,2*r,2*r);
}

for(int i=3;i<2*N;i+=2)
{
g.setColor(new Color(200,200,200));
g.fillOval(r,i*r,2*r,2*r);
}
for (int i=3;i<2*N;i+=2)
{
g.setColor(new Color(200,200,200));
g.fillOval( (2*n-1)*r,i*r,2*r,2*r);
}
for (int i=3;i<8;i+=2)
{
g.setColor(new Color(200,200,200));
g.fillOval(i*r,(2*N-1)*r,2*r,2*r);
}
g.fillOval(7*r,(2*N-3)*r,2*r,2*r);
g.fillOval(7*r,(2*N-5)*r,2*r,2*r);
g.fillOval(9*r,(2*N-5)*r,2*r,2*r);
g.fillOval(11*r,(2*N-5)*r,2*r,2*r);
g.fillOval(11*r,(2*N-3)*r,2*r,2*r);
g.fillOval(11*r,(2*N-1)*r,2*r,2*r);
g.fillOval(13*r,(2*N-1)*r,2*r,2*r);
g.fillOval(15*r,(2*N-1)*r,2*r,2*r);
g.fillOval(17*r,(2*N-1)*r,2*r,2*r);

g.fillOval(5*r,7*r,2*r,2*r);
g.fillOval(7*r,7*r,2*r,2*r);
g.fillOval(5*r,9*r,2*r,2*r);
g.fillOval(7*r,9*r,2*r,2*r);
for ( int i=11;i<=15;i+=2)
g.fillOval(i*r,11*r,2*r,2*r); */
Robot robot;

try
{
 robot=new Robot();
 for(int j=r;j<=r;j++)
 for(int i=0;i<=22*r;i++)
 if ( robot.getPixelColor(i,j).equals(new Color(200,200,200)))
System.out.println(g.getColor()+","+robot.getPixelColor(i,j)+","+i+","+j);
}
catch(AWTException ex)
{
ex.printStackTrace();
}


}

解决方案 »

  1.   

    import java.util.*;
    import parsell1.*;
    import globle.*;
    public class Help {

    //static List <Node > stack=new ArrayList<Node>();
    static Stack <Node> stack=new Stack<Node>();
    static int number=-1;
    public static void main(String[] args)
    {
    Node root=new Node();
    stack.push(root.child[0]);

    Node t=stack.pop();

    t=new Node(); //为何改变t了,root.child[0]确还是空
    //root.child[0]=new Node();
    System.out.println(root.child[0].a);

    }}