Прокручиваемая область позиционирования мыши в 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();