SWT - получить фактическую позицию изображения на экране - PullRequest
1 голос
/ 01 марта 2012

Я нарисовал изображение на Composite, используя следующий код

imageCanvas = new Composite(shell, SWT.BORDER);  

//adding paintListener to the canvas  
imageCanvas.addPaintListener(new PaintListener() {  
@Override  
public void paintControl(PaintEvent e)  
{  
    if (sourceImage != null)  
    {  
        // draw the image   
        e.gc.drawImage(sourceImage, 120, 150);  

        //check the bounds of the image using the getBounds function  
        Rectangle newrec = sourceImage.getBounds();  
        System.out.println("X: " +newrec.x + " Y: "+newrec.y );    // prints (0, 0)      instead of (120, 150)  
    }  
}   
});  

Теперь я пытаюсь получить положение изображения на экране.Функция image.getBounds возвращает границы внутри родительского контейнера, а метод getLocationOnScreen (), используемый в AWT / Swing, недоступен для SWT.Как узнать положение изображения на экране в SWT?

1 Ответ

2 голосов
/ 01 марта 2012

Вам нужны координаты отображения. Если у вас есть Composite imageCanvas, и вы рисуете на нем изображение с координатами 120, 150 , то вы можете получить координаты на дисплее, вызвав:

imageCanvas.toDisplay(120, 150);
...