0

私はこれに良いタイトルを付ける方法を知りませんでした..しかし、ここに行きます:

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);
}
4

2 に答える 2

1

getMousePosition() から取得した座標に JViewport.getViewPosition() を追加するのはどうですか?

于 2013-03-28T12:16:18.667 に答える
0
evento mouseClicked...

x= event.getX();

luego:

Point pos =    scrollImagen.getViewport().getViewPosition();
pos.translate(x, y);
...
double nuevaPosx = pos.getX();
于 2013-06-06T20:50:18.880 に答える