Хорошо, я знаю, КАК это сделать, но он делает что-то странное.
Я пытаюсь получить правильные координаты XY для появления JMenu
.Я нашел способ, но это всего лишь взлом.Все щелчки правой кнопкой происходят на JList
, пока я не добавлю панель персонажей, так что, скажем, вы щелкаете правой кнопкой рядом с верхним левым.Вы ожидаете, что координата Y будет около 40 ~ пикселей, а координата Y будет около 100 ~ пикселей, верно?Потому что вы нажимаете в левом нижнем углу, где JList
.Неправильно.Координаты xy отсчитываются в верхнем левом углу JList
, когда я хочу, чтобы они отсчитывались в верхнем левом углу ВСЕГО приложения.: S
Итак, что я сделал?Так как координата Y верна, я добавил 512 пикселей к координате X, чтобы она всегда была в JList.Вот так:
int newMouseX = 512+e.getX();
popup.show(tileOffline.this, newMouseX, e.getY()); // show item at mouse
Однако, как вы можете сказать, я не буду щелкать правой кнопкой мыши в JList
вечно.
Как мне сделать так, чтобы я получал точные координаты XY мыши из ВСЕГО апплета?
Вот картинка, описывающая ситуацию БЕЗ взлома 512: