首页 >> 中药养生

使用实现全屏鼠标取色覆盖

中药养生  2021年09月06日  浏览:4 次

今天就用Java写一个简单版的取色软件吧,虽然很简陋,但是我们的软件是绿色的而且功能并不逊色,那就开始吧! VQH|ENB@

程序运行时的界面如下所示:(此时我的鼠标就放在标题栏) ;T~$wJ

屏幕截图

=780) window.open(\' src=\" onload=\"javascript:if(this.width>\'780\')this.width=\'780\';setTimeout(\'if(document.getElementById(\\\' border=0> (;,@j

=N;Ny7_h

要实现屏幕截图,最主要的 要属下面的三个类了: \'k^?mO(u@

lor; \"F)(NP.

useInfo; d u4!{2

bot; 5\'lj:dP

RfP/~0,4t

取色步骤也是相当的简单,不信?那你跟着做: Og XqfP

1: 得到鼠标在屏幕中的具体位置,这就要用MouseInf这个类,具体的方法是 Fb0Slmz @

Point point; ;!v;@d9

point = tPointerInfo().getLocation(); lcohqyc

2: 得到第一步取得的点的像素,要实现这个功能,要分两个步骤 0WsKV0-W?

1) 定义一个Robot对象(Robot robot = new Robot();) ~Q54)

2) 用定义的Robot对象得到某点的像素值(tPixelColor(point.x, point.y);) \'7FS);]N

3: 取得该像素的RGB,这个在Color类中就有相应的函数,这里我不在叙述. 3M(D~4

4 f B 9D

具体的代码如下: ^4T1#`sD

Copy codeimport rame; MBb~,k

import anel; Ny MKb\'

import abel; QN8^M 

N=o~/%Wz

import lor; Ux5qDp3{D}

import useInfo; E@)u8

import int; |pzeFm

import olkit; O%PE[iP

import mension; DSPD`m[\'

import bot; Y+`ns

import aphics; im[JpA

MXa@{M

import useMotionAdapter; 7/q:Or{

import useEvent; @yWTFUb

ufk6|-}fJ

public class PickColor extends JFrame implements Runnable 0},ac7l

{ x  y!?

private Robot robot; KnLqUnkW)

private Color color = new Color(0, 0, 0); Q\"m?8~;r

private Point point; fJ`-

private JPanel pane = new JPanel(); w52Y}A $

private JLabel label = new JLabel(); mb_I43y

m`S@v\"9j@

public PickColor(String title) j3@/;W9

{ ER9@NV!

super(title); hX!Z13L

.b-m)k/\"

tHorizontalAlignment(NTER); W[rM,ENv

getContentPane().add(pane, \"Center\"); $zlk@3=O

getContentPane().add(label, \"South\"); k1p 8}lP:

//getContentPane().addMouseMotionListener(new PickColorMouesMotionListener()); C/Fk oF*

setDefaultCloseOperation(IT_ON_CLOSE); ucSjSjD7X

setSize(200,200); b#* d=~%

display(); n.e\\sT4(i

new Thread(this).start(); 5`#^\\p9

} kB StW

public static void main(String[] args) UP}h:=,

{ G#pU,oL]1K

PickColor pc = new PickColor(\"PickColor\"); LUKOxD8\\

} K)XY 1

uGKK1jXz

public void display() _S@6+pgVi

{ jy 2o#M*9

Toolkit toolkit = tDefaultToolkit(); ry2p\'hhk

Dimension dim = tScreenSize(); |PP*.I(u

setLocation {?z e

( rzJS`Q0

(dth - getWidth()) / 2, nRZVX).q

(ight - getHeight()) / 2 mZw!={A8]

); d}1Y\\9 i

setVisible(true); h{!OcH

好像是要跳楼 } xrcV~

d}dWO

// 对整个屏幕进行取色 qW5}8G3U

public void run() Cz|Bp70

{ w(.EW/6?7

while(true) /\\@QK_`m$

{ [j2B%eY3@\"

try Y+7~8FHf

{ oYNa*

robot = new Robot(); V?Z3n;

point = tPointerInfo().getLocation(); \\JPU(]

color = tPixelColor(point.x, point.y); O\' y,=~D7

tBackground(color); 607knO? %g

tText(\"RGB(\" + tRed() + \", \" + tGreen() + \", \" + tBlue() + \")\"); ~q2S]90NXa

eep(10); 9}=AyPW08`

} sE[]r;Bq[

catch(Exception e) /4Z kGH{\\

{ T\\) 8=~

intStackTrace(); \"s\")\'Bt

} 6xPJ$3=

} } f NYBZh

} ?E3Mmqi~e

} Fy,=$=,

\'!3}G 

EFTp

7eHh~m~

z~? nC[x

上面的代码是对全屏幕取色,如果只想对swing绘制的窗体里面的组件进行取色,可以用下面的方法实现 MRv yS::(

1: 在构造函数中加入下面的代码 t -RP~pC\'

getContentPane().addMouseMotionListener(new PickColorMouesMotionListener()); .G:[n9L z

2: 添加下面的内部类 ho Tr$0X

Copy codeclass PickColorMouesMotionListener extends MouseMotionAdapter l9vuif+Xo

{ ]D[\"/tli

PickColorMouesMotionListener() uB|p_C\'|

{ Ol JU:%2

} xjJf1 c

public void mouseMoved(MouseEvent e) c+7XZg+IW

{ ]qFIED

try Q)e

{ d3ktv*Q

robot = new Robot(); c;\"bmZC

point = tPointerInfo().getLocation(); 7I?c*$ i

color = tPixelColor(point.x, point.y); 1%973W3\'+x

tBackground(color); j\\4.R,P Y

tText(\"RGB(\" + tRed() + \", \" + tGreen() + \", \" + tBlue() + \")\"); !0Z fNq

eep(10); xJX}`^r

} {qd(TGD{

catch(Exception ex) VW?QRe Y

{ # !!MQTk

intStackTrace(); z4^q5t0;s2

} *Vi[vk)

查看本文来源 >

海口妇科医院哪家好
宏济堂小儿消食片
哪家白癜风医院较好
友情链接