声明: 本文核心代码选择自langzi84的blog请看以下链接 http://dev.csdn.net/article/44/article/44/44529.shtm http://blog.csdn.net/langzi84/archive/2004/10/21/146331.aspx
  代码1。在屏幕上输出当前鼠标所在的屏幕颜色。   import java.awt.*;      public class PickColor {    public static void main(String[] args) {     PickColor pc = new PickColor();     Color color = pc.pickColor();     System.out.println("color = "+color);    }        public Color pickColor() {     Color pixel = new Color(0,0,0);    Robot robot = null;    Point mousepoint;    int R,G,B;   // MouseInfo mouseinfo = new MouseInfo();    try {    robot = new Robot();  } catch (AWTException e) {   e.printStackTrace();   System.exit(1);  }    mousepoint = MouseInfo.getPointerInfo().getLocation();    pixel = robot.getPixelColor(mousepoint.x,mousepoint.y);    R = pixel.getRed();    G = pixel.getGreen();    return pixel;    }      }    代码2。使用一个GUI,输出当前鼠标所在的屏幕颜色,并改变GUI的背景色。   // create by kin 2004/10/24 refer to http://dev.csdn.net/article/44/44529.shtm      import java.awt.*;   import java.awt.event.*;   import javax.swing.*;   import javax.swing.event.*;      public class PickColor2 extends JFrame {    public static void main(String[] args) {     PickColor2 pc = new PickColor2();     //Color color = pc.pickColor();     //System.out.println("color = "+color);    }        public PickColor2 () {     super("Pick Color");     setSize(200,200);     JPanel p =new JPanel();     getContentPane().add(p);     // this mouse listener only is limited in the java desktop region     p.addMouseMotionListener(new PickColorMouesMotionListener(p));     // this thread is really effected!     new PickColorThread(p).start();     setVisible(true);     }        /**Mouse Motion Listener,when mouse are moving, then set corresping screen's color to the JPanel's background Color. */    class PickColorMouesMotionListener extends MouseMotionAdapter {     private JPanel p = null;     PickColorMouesMotionListener(JPanel p) {      this.p = p;     }     public void mouseMoved(MouseEvent e) {      Color c = pickColor();      this.p.setBackground(c);      //System.out.println (c);     }    }        class PickColorThread extends Thread {     private JPanel p = null;     PickColorThread(JPanel p){      this.p=p;     }     public void run () {      while (true) {       try {        Thread.currentThread().sleep(10);        Color c = pickColor();                this.p.setBackground(c);                // try change the foreground when background 's r <= 50 or g <= 50 or b <= 50        Graphics g = p.getGraphics ();        if (c.getRed() <=50 || c.getGreen() <= 50 || c.getBlue() <= 50) {         g.setColor(Color.WHITE);        } else {         g.setColor(Color.BLACK);        }        g.drawString(c.toString(),0,100);        g = null;                        //System.out.println (c);       } catch (InterruptedException e) {        e.printStackTrace();        System.exit(1);       }      }     }    }        /**Get Screen Color*/    public Color pickColor() {     Color pixel = new Color(0,0,0);    Robot robot = null;    Point mousepoint;    int R,G,B;   // MouseInfo mouseinfo = new MouseInfo();    try {    robot = new Robot();  } catch (AWTException e) {   e.printStackTrace();   System.exit(1);  }    mousepoint = MouseInfo.getPointerInfo().getLocation();    pixel = robot.getPixelColor(mousepoint.x,mousepoint.y);    R = pixel.getRed();    G = pixel.getGreen();    return pixel;    }      }   
   
 
  |