Czy da się ustawić MouseListener na obraz narysowany na panelu?

0

Witam.

Czy w javie da się ustawić MouseListenera na obraz narysowany na panelu. Chcę żeby po kliknięciu na niego pojawiło się nowe okno, ale nie mam pojęcia jak ustawić słuchacza. Jest taka możliwość czy jestem zmuszony używać buttona z ikoną?

1

a nie możesz dać mouselistenera na jpanel?

0

Ale ja będę miał wiele tych obrazów i każdy będzie wywoływał inne okno. A jak dodam na JPanel to będzie reagował jak kliknę na całe okno.

1
public void mousePressed(MouseEvent e) {
        if(e.getX()>obrazek.x && e.getY()>obrazek.y && e.getX()<obrazek.w && e.getY()<obrazek.h){
                //wykonaj co tam chcesz
        }
    }
 
0

Ok dzięki tak na szybkich testach wszystko działa :-) ale że wszystko jest ok to stwierdzę dopiero jak przetestuję to w projekcie. Problem w tym że te obrazki będą dodawane po kliknięciu na buttona i każdy obrazek będzie musiał wywoływać inne okno.

1

Stwórz klasę obrazek i nadaj jej odpowiednie parametry (x,y,w,h i szczegóły tworzonego okna) :>. I potem zrób tablice dynamiczną (listę) i dodawaj do niej obiekty tej klasy a podczas kliknięcia wywołuj pętelkę, która przeleci przez wszystkie obiekty tej tablicy porównując tak jak w przykładzie.

0

Tak to będzie świetny pomysł, dzięki wielkie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1