Прокручиваемая область позиционирования мыши в Java

Я не знал, как сделать хороший заголовок для этого.. но здесь мы идем:

Я пытаюсь получить точное положение мыши, когда я нажимаю на метку, используя MouseAdapter, который я добавил в свой JViewPort JScrollPane. Моя панель сама добавляется в JScrollPane.

И когда я пытаюсь получить координаты, положение мыши всегда относительно области панели, которая видна.. это не считая области, которая не видна, из-за прокрутки..

Я не знаю, дал ли я понять, надеюсь, что так. Уже пробовал использовать getMousePosition из JViewPort и из JScrollPane, а также не работал.. Большое спасибо заранее!!

Вот некоторый код: Конструкция рамы, внутри которой находится панель.

public GraphViewer(ArrayList<TimeSlot> graph) throws HeadlessException {
    final MyCustomPanel panel = new MyCustomPanel(graph);
    panel.setPreferredSize(panel.getLargestSize());

    scroll = new JScrollPane(panel);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout(new BorderLayout());
    add(scroll, BorderLayout.CENTER);

    JViewport v = scroll.getViewport();
    ViewportDragScrollListener l = new ViewportDragScrollListener(panel);
    v.addMouseMotionListener(l);
    v.addMouseListener(l);
}

2 ответа

Решение

Как насчет добавления JViewport.getViewPosition() к координатам, полученным из getMousePosition()?

evento mouseClicked...

x= event.getX();

luego:

Point pos =    scrollImagen.getViewport().getViewPosition();
pos.translate(x, y);
...
double nuevaPosx = pos.getX();
Другие вопросы по тегам