9

我试图找出一种以编程方式获取用户单击 WorldWind AnalyticSurface 的点的视觉颜色(而不是拾取颜色)的方法。

查看AnalyticSurfacePickedObjectList我不确定我需要将哪些 API 调用串在一起来执行此操作,或者是否可能。

4

2 回答 2

1

这是一个可能的解决方案。试试看嘛。单击时(我假设您已经制作了一些MouseListener带有mouseClicked()方法的对象),只需将整个计算机屏幕上的当前鼠标指针位置作为坐标。

import java.awt.MouseInfo;
import java.awt.PointerInfo;
import java.awt.Point;
PointerInfo pi=MouseInfo.getPointerInfo();
Point p=pi.getLocation();

现在我们得到了屏幕上点击的位置。

使用 Robot 类,您可以获得该位置的像素。

import.java.awt.Robot;
import.java.awt.Color;
Robot robot=new Robot();
Color color=robot.getPixelColor(p.x,p.y) ;
// you got the color at the clicked point.

希望这可以帮助。

于 2016-10-17T16:47:28.473 回答
0

稍微看一下 API,除非您使用一些解决方法,否则我认为这是不可能的。好的,让我们从头开始:

1.如何获取点击事件?

似乎没有简单的方法。你能从父容器中获取点击事件吗?或者,如果您首先单击“选择颜色”之类的按钮,则此按钮可能会在前面放置一个不可见的框架,这会抓住下一次单击(然后立即关闭它,并在单击位置返回颜色,因此其余部分与以前一样)。

2.如何获取颜色?

除非您有某种数学方法来计算单击位置的颜色,否则您可以尝试使用createScreenCapture(...)(class Robot),然后使用getRGB(...). 或者,如果您要使用透明覆盖层,则可以直接获取颜色。

于 2015-04-19T08:04:39.287 回答