Я думаю, что самый простой способ рисования и графики - это не рисование на изображении, а рисование непосредственно в JPanel. Если у вас есть класс, расширяющий JPanel, вы можете реализовать
public void paintComponent(Graphics g) {
//Code to draw whatever you like, e.g.
g.setColor(new Color(255, 255, 255));
g.drawRect(0, 0, width, height);
}
. При этом вам не придется беспокоиться об обработке изображений. Если вы все еще хотите использовать изображения, вы можете использовать BufferedImage, который есть отличные документы, объясняющие, как его использовать: https://docs.oracle.com/javase/tutorial/2d/images/drawonimage.html (Вам все равно нужно будет отобразить эти изображения, скорее всего, в любом случае с помощью метода paintComponent, приведенного выше, и если вы хотите нарисовать все oop, вы вам нужно будет поместить это l oop в другой поток, помните)
Что касается mouseClicked, вам нужно реализовать MouseListener, который довольно прост:
Создайте объект MouseListener в вашем классе вам придется реализовать несколько методов внутри него, большинство из которых, вероятно, будут go неиспользованными.
Где-то в вашем коде (возможно, конструкторе) вам нужно будет добавить MouseListener к любому компонент, который вы хотите дождаться щелчков (вероятно, панель, на которой вы рисуете)
При щелчке по этому компоненту мышь щелкает мышью. Будет вызван метод ethod, и оттуда вы можете делать все, что вам нужно, например, вызывать другие имеющиеся у вас методы для обработки щелчков мыши.
Объект MouseEvent в слушателе содержит всю полезную информацию, которая вам понадобится, например, его положение (относительно компонента, к которому вы добавили слушателя)
public class YourClass {
public YourClass() {
this.addMouseListener(ml);
}
//code
private MouseListener ml = new MouseListener() {
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
System.out.println(arg0.getX() + ", " + arg0.getY());
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
}
}