Java机器人类 |获取给定点的像素颜色
机器人是Java.awt 包的一部分。 Robot 类主要用于生成本地系统输入事件,用于自运行演示、测试自动化和其他使用鼠标和键盘控制的应用程序。
Robot 类生成可用于控制鼠标、键盘和截屏的事件。
在本文中,我们将讨论如何获取用户提到的屏幕上点的像素颜色。
使用方法:
getPixelColor(int x, int y)
This function returns an object of the color class
of the given screen coordinates.
在下面的程序中,我们将打印一个标签,其中包含输入像素的 RGB 值,标签的文本将是像素颜色
Java
// Java program to get the pixel color of
// given screen coordinates
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class color extends JFrame
implements ActionListener {
// textfield to get x, y coordinates
static JTextField x, y;
// button
static JButton b;
// create a frame
static JFrame f;
// label
static JLabel l;
public static void main()
{
// create a frame
f = new JFrame("pixel Color");
// label to show the RGB value
l = new JLabel("no value");
// create the text field
x = new JTextField(16);
y = new JTextField(16);
// create a button
b = new JButton("find");
// create an object of the class
color co = new color();
// add ActionListener
b.addActionListener(co);
// create a panel
JPanel p = new JPanel();
// add textfield and button to the panel
p.add(x);
p.add(y);
p.add(b);
p.add(l);
// add the panel
f.add(p);
// set the size of the frame
f.setSize(500, 500);
f.show();
}
// if the button is pressed
public void actionPerformed(ActionEvent e)
{
String s = e.getActionCommand();
if (s.equals("find")) {
int xp, yp;
// get user inputs of x and y position
xp = Integer.parseInt(x.getText());
yp = Integer.parseInt(y.getText());
// try and catch block to handle exceptions
try {
// create an object of robot class
Robot r = new Robot();
// get the pixel color
c = r.getPixelColor(xp, yp);
}
catch (Exception evt) {
// print error message
System.err.println(evt.getMessage());
}
Color c;
// set the RGB value to the label
// and to its foreground
l.setForeground(c);
l.setText("Red = " + c.getRed() + ",
Green = " + c.getGreen() + ", Blue = " + c.getBlue());
}
}
}
输出 :
注意:以下程序可能无法在在线编译器中运行,请使用离线 IDE。