TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
代码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]
复制代码
代码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;
- }
- }
复制代码
源码下载:http://file.javaxxz.com/2014/10/1/170417781.zip |
|