我正在嘗試爲2D RPG製作地圖編輯器,而我目前正在嘗試做的事(將地面貼圖放置在地面上)是讓帶有JLabel的JScrollPane(其中包含圖像)和附加到JScrollPane的鼠標偵聽器,以確定圖像的X和Y位置。我碰到的問題是,它沒有得到Images X和Y的位置,而是JScrollPanes X和Y的位置。我如何獲得JScrollPane中圖像的X和Y位置
所以我有一個JScrollPane附加到512x4928的圖像上,我附加了一個鼠標監聽器。當我嘗試獲取Y位置時,問題仍然存在,因爲JScrollPane是一個單獨的對象,它獲取的JScrollPane的大小的X和Y JScrollPanes大小爲512x600 無論圖像在哪裏,它都不會返回值大於600.
任何方式,我可以使這項工作?
繼承人的代碼
public void loadMapTileImage(){
try {
image = ImageIO.read(getClass().getResource("data/misc/tiledata.png"));
image = image.getSubimage(0, 0, 512, 4928);
} catch (IOException e) {
e.printStackTrace();
}
ImageIcon i = new ImageIcon(image);
MapEditorGlobalObjects.mapTileScroll = new JScrollPane(new JLabel(i));
}
mapTileScroller.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent arg0) {
MapEditorGlobalObjects.checkIfDebugging("Mouse Released Location X = "+arg0.getX());
MapEditorGlobalObjects.checkIfDebugging("Mouse Released Location Y = "+arg0.getY());
}
@Override
public void mousePressed(MouseEvent arg0) {
MapEditorGlobalObjects.checkIfDebugging("Mouse Clicked Location X = "+arg0.getX());
MapEditorGlobalObjects.checkIfDebugging("Mouse Clicked Location Y = "+arg0.getY());
}
不錯!我喜歡那樣,更乾淨。謝謝你教我新的東西。 – Loligans
我喜歡簡單;) – MadProgrammer