2013-03-28 1 views
0

я не знаю, как сделать хорошее название для этого .. но здесь мы идем:Java Mouse Позиция couting область, которая была прокручивается

Я пытаюсь получить точное положение мыши, когда я нажимаю на этикетке, используя 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); 
} 
+1

пожалуйста, вы хотите получить только точку с мышью, или переместить эту точку на JPanel в JScrollPane – mKorbel

+0

Эй! Спасибо за ваш ответ . Я хочу получить позицию мыши в JPanel. Но позиция, которую я получаю с помощью getMousePosition, всегда имеет вид окна просмотра. Не вся jlabel .. если бы был способ получить количество прокрутки X и количество Y прокрутил, я мог делать математику .. – TiagoM

+0

посмотрите на SwingUtilities.convertXxxXxx, я уверен, что я отправляю ответ на очень похожий вопрос (ы), пожалуйста, чтобы искать в моих сообщениях здесь – mKorbel

ответ

1

насчет добавления JViewport.getViewPosition() к координатам, полученным от getMousePosition()?

+0

Вы так волнуетесь удивительный человек eheh : P Спасибо большое! Он очень хорошо решает мою проблему! – TiagoM

0
evento mouseClicked... 

x= event.getX(); 

luego: 

Point pos = scrollImagen.getViewport().getViewPosition(); 
pos.translate(x, y); 
... 
double nuevaPosx = pos.getX();