отслеживание положения мыши в Java WorldWind

Я пытаюсь добавить прослушиватель мыши на свой глобус, используя addMouseListener. Он не показывает никаких ошибок, я даже могу добавить mouseClicked(MouseEvent e), и до сих пор нет ошибок. Но, наконец, когда я пытаюсь получить текущую позицию, используя worldWindowGLCanvas1.getCurrentPosition(), он показывает NULL, даже если я нажимаю на земной шар или за его пределами... Может ли кто-нибудь помочь мне с этим? Не беспокойтесь о лишних пробелах. Я изменил, так как веб-сайт не принимал мой вопрос :)


person Ved Prakash    schedule 23.11.2013    source источник
comment
Не могли бы вы добавить свой код в этот пост? У меня еще много вопросов. Я добавил ответ, который работает для меня, но я не уверен, что вы уже сделали. Где вы добавили метод mouseClicked? Смотрите мой ответ и дайте мне знать, если это поможет.   -  person lordoku    schedule 28.12.2013


Ответы (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.

person lordoku    schedule 28.12.2013