我不知道如何为此取一个好标题..但是我们开始吧:
我试图在单击标签时获得准确的鼠标位置,使用添加到 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);
}