我正在尝试为 2D RPG 制作地图编辑器,而我目前正在尝试做的(在地面上放置瓷砖)是有一个带有 JLabel 的 JScrollPane (其中有一个图像)和一个鼠标监听器到 JScrollPane 以确定图像的 X 和 Y 位置。我遇到的问题是它没有得到图像 X 和 Y 位置,而是 JScrollPanes 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());
}