首页
论坛
图书
开发资料
在线文档
网址
下载
联系我们
 新闻│Java│JavaScript│Eclipse│Eclipse 英文│J2EE│J2ME│J2SE│JSP│Netbeans│Hibernate│JBuilder│Spring│Struts
站内搜索: 请输入搜索关键词

当前页面: 开发资料首页 → Java 专题 → java实现屏幕取色

java实现屏幕取色

摘要: java实现屏幕取色

</td> </tr> <tr> <td height="35" valign="top" class="ArticleTeitle"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="270" height="86" align="center" valign="top"> </td> <td width="414" valign="top">

代码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);

}

  Color pickColor() {

    Color pixel = new Color(0,0,0);

    Robot robot = null;

    Point mousepoint;

    int R,G,B;

   

    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;

   }

}

 运行结果:

C:\java>java PickColor
color = java.awt.Color[r=0,g=0,b=0]

</td></tr> </table>

  代码2。使用一个GUI,输出当前鼠标所在的屏幕颜色,并改变GUI的背景色。

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();

}

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 screens color to the JPanels 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;

    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;

 }

}


</td> </tr> <tr>


↑返回目录
前一篇: 一个理解wait()与notify()的例子
后一篇: Java中的随机数使用

首页 | 全站 Sitemap | 联系我们 | 设为首页 | 收藏本站
版权所有 Copyright © 2006-2007, Java 编程资料牛鼻站, All rights reserved