我不知道如何为此做出好头衔..但是我们走了:
当我点击标签时,我试图获得准确的鼠标位置,使用我添加到JScrollPane的JViewPort的MouseAdapter 我的面板本身被添加到JScrollPane中。
当我试图获得鼠标位置的坐标时,总是相对于可见的面板区域..由于滚动,它不计算不可见的区域..
我不知道如果我说清楚了,我希望如此...... 已经尝试从JViewPort和JScrollPane使用getMousePosition,但也无法正常工作.. 非常感谢!!
这是一些代码: 框架内部有框架的构造..
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);
}
答案 0 :(得分:1)
如何将JViewport.getViewPosition()添加到从getMousePosition()获得的坐标?
答案 1 :(得分:0)
evento mouseClicked...
x= event.getX();
luego:
Point pos = scrollImagen.getViewport().getViewPosition();
pos.translate(x, y);
...
double nuevaPosx = pos.getX();