滚动的Java鼠标位置couting区域

时间:2013-03-28 12:04:06

标签: java swing jscrollpane mouse-position jviewport

我不知道如何为此做出好头衔..但是我们走了:

当我点击标签时,我试图获得准确的鼠标位置,使用我添加到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);
}

2 个答案:

答案 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();