我试图找出一种以编程方式获取用户单击 WorldWind AnalyticSurface 的点的视觉颜色(而不是拾取颜色)的方法。
查看AnalyticSurface和PickedObjectList我不确定我需要将哪些 API 调用串在一起来执行此操作,或者是否可能。
我试图找出一种以编程方式获取用户单击 WorldWind AnalyticSurface 的点的视觉颜色(而不是拾取颜色)的方法。
查看AnalyticSurface和PickedObjectList我不确定我需要将哪些 API 调用串在一起来执行此操作,或者是否可能。
这是一个可能的解决方案。试试看嘛。单击时(我假设您已经制作了一些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.
希望这可以帮助。
稍微看一下 API,除非您使用一些解决方法,否则我认为这是不可能的。好的,让我们从头开始:
似乎没有简单的方法。你能从父容器中获取点击事件吗?或者,如果您首先单击“选择颜色”之类的按钮,则此按钮可能会在前面放置一个不可见的框架,这会抓住下一次单击(然后立即关闭它,并在单击位置返回颜色,因此其余部分与以前一样)。
除非您有某种数学方法来计算单击位置的颜色,否则您可以尝试使用createScreenCapture(...)
(class Robot
),然后使用getRGB(...)
. 或者,如果您要使用透明覆盖层,则可以直接获取颜色。