使用实现全屏鼠标取色覆盖
中药养生 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)
查看本文来源 >
海口妇科医院哪家好宏济堂小儿消食片
哪家白癜风医院较好

- 上一篇: 使用中的变量需要注意的计划
- 下一篇 使用实现在文件中添加字符串牛
-
能让你有长寿功效的抗衰老中药
2019-07-13
-
拔罐疗法可增强体质四类操作方法介绍
2019-07-11
-
中药丰胸自然美胸美艳
2019-07-07
-
广东中医药精准医学工程技术研究中心揭牌仪
2019-07-07
-
江西奉新县中医院开展中医药知识培训
2019-07-02
-
给力的六款中药美容面膜
2019-06-25