拾取点的WorldWind颜色

时间:2015-04-10 19:35:59

标签: java swing awt worldwind

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

查看AnalyticSurfacePickedObjectList我不确定我需要串起来执行此操作的API调用,或者甚至是否可能。

2 个答案:

答案 0 :(得分: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.

希望这有帮助。

答案 1 :(得分:0)

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

1。如何获得点击事件?

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

2。如何获得颜色?

除非您在某种程度上以数学方式计算点击位置的颜色,否则您可以尝试使用createScreenCapture(...)(类Robot),然后使用getRGB(...)获取像素颜色。或者,如果您要使用透明覆盖层,则可以直接获得颜色。