2013-11-23 137 views
1

我正在尝试使用addMouseListener向我的地球添加鼠标侦听器。它不显示任何错误,我甚至能够添加mouseClicked(MouseEvent e),并且仍然没有错误。但最后,当我试图使用worldWindowGLCanvas1.getCurrentPosition()获取当前位置时,它显示NULL,即使我点击全球或外部...有人可以帮助我这么做吗?不要担心多余的空间。我已经修改,因为该网站没有接受我的问题:)在Java上跟踪鼠标位置WorldWind

+0

你可以添加你的代码到这个职位?我仍然有很多问题。我添加了一个适合我的答案,但我不确定你已经完成了什么。你在哪里添加了一个mouseClicked方法?看到我的答案,并让我知道如果有帮助。 – lordoku

回答

1

我不知道如果这是你在问什么,但是这是为我工作:

final WorldWindowGLCanvas aCanvas = new WorldWindowGLCanvas(); 
aCanvas.setModel(new BasicModel()); 
aCanvas.getInputHandler().addMouseListener(new MouseAdapter() { 
    @Override 
    public void mouseClicked(MouseEvent pE) { 

     Position aCurrentPosition = aCanvas.getCurrentPosition(); 

     //Or whatever work:  
     if(aCurrentPosition != null) { 

      System.out.println("Current Pos= " + aCurrentPosition); 

     } else { 

      System.out.println("Current Pos is null!"); 

     } 
    } 
}); 

我加空校验看看它是否会变为空,而不是。这个代码的假设是鼠标点击会将地球重新定位到该位置。调用aCanvas.getCurrentPosition()应返回中心球体。如果画布未呈现或不可见,则此方法将返回null。