关于作者

java提取屏幕颜色

上一篇 / 下一篇  2008-03-17 00:49:47 / 天气: 晴朗 / 心情: 高兴 / 个人分类:Java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package net.pallove.test;

import java.awt.AWTException;
import java.awt.Color;
import java.awt.Robot;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JFrame;
import javax.swing.JLabel;

/**
 *
 * @author leon
 */
public class DropColor {

    public static Boolean isKeyDown = false;

    public static void main(String[] args) throws AWTException {
        final JFrame. f = new JFrame("Capture the system color");

        f.setSize(430, 200);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        f.getContentPane().add(new JLabel("Press the Alt key and drag from the window content to drop the pixel color"));
       
        f.setFocusable(true);
        f.addKeyListener(new KeyAdapter() {

            @Override
            public void keyPressed(KeyEvent e) {
                if (e.isAltDown()) {
                    DropColor.isKeyDown = true;
                }
            }

            @Override
            public void keyReleased(KeyEvent e) {
                DropColor.isKeyDown = false;
            }
        });


        f.addMouseMotionListener(new MouseMotionAdapter() {

            @Override
            public void mouseDragged(MouseEvent e) {
                if (DropColor.isKeyDown) {
                    showColor(e);
                }
            }

            private void showColor(MouseEvent e) {
                int evtX = e.getXOnScreen();
                int evtY = e.getYOnScreen();

                try {
                    Robot robot = new Robot();
                    Color c = robot.getPixelColor(evtX, evtY);
                   
                    f.getContentPane().setBackground(c);
                    f.setTitle(c.toString().replaceAll("[a-z]+\\.", ""));
                } catch (Exception ex) {
                }
            }
        });
        f.setVisible(true);
    }
}


关键还是Robot这个好玩的东东,呵呵

相关阅读:

TAG: java 屏幕取色

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)