我试图想出一种方法,以编程方式获取用户点击WorldWind AnalyticSurface的点的视觉颜色(而不是拾取颜色)。
查看AnalyticSurface和PickedObjectList我不确定我需要串起来执行此操作的API调用,或者甚至是否可能。
答案 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,我认为除非你使用一些解决方法,否则它是可能的。好的,让我们从头开始:
似乎没有简单的方法。你能从父容器中获取click事件吗?或者,如果您首先单击一个按钮,例如"选择颜色"然后这个按钮可以在前面放置一个不可见的框架,这会抓住下一个单击(然后它会立即关闭,在点击位置返回颜色,所以其余部分像以前一样工作)。
除非您在某种程度上以数学方式计算点击位置的颜色,否则您可以尝试使用createScreenCapture(...)
(类Robot
),然后使用getRGB(...)
获取像素颜色。或者,如果您要使用透明覆盖层,则可以直接获得颜色。