Hallo,
ich habe ein Problem mit dem MouseListener. Und zwar restelle ich mit einer Schleife eine unbekannte Anzalh von Panels, auf denen ein Bild gemalt wird. Auf diese Panels soll jetzt geklickt werden, damit Informationen (bei mir vom Typ PodcastItem - eine Klasse, die ich geschrieben habe) angezeigt werden können. Die einzelnen PodcastItems enthalten Informationen über ein Podcastobjekt und ich möchte Titel, Beschreibung etc. auslesen, was soweit auch klappt. Bei der Erstellung weise ich dem JPanel Objekt dummy ein PodcastItem zu, aus dem dann später mit dem MouseListener bei einem Klick die relevanten Informationen herausrückt. Soweit so gut. Das Problem ist, dass ich bei sagen wir drei Objekten immer, egal auf welches Panel ich Klicke die Information vom PodcastItem des ersten Schleifendurchlaufs erhalte. Weiß jemand, wie man das ändern kann? Hier ist ein Codeausschnitt. Alles kann ich leider nicht posten, das wäre zu unübersichtlich, da so viel verbunden ist.
Viele Grüße
MyPiano
ich habe ein Problem mit dem MouseListener. Und zwar restelle ich mit einer Schleife eine unbekannte Anzalh von Panels, auf denen ein Bild gemalt wird. Auf diese Panels soll jetzt geklickt werden, damit Informationen (bei mir vom Typ PodcastItem - eine Klasse, die ich geschrieben habe) angezeigt werden können. Die einzelnen PodcastItems enthalten Informationen über ein Podcastobjekt und ich möchte Titel, Beschreibung etc. auslesen, was soweit auch klappt. Bei der Erstellung weise ich dem JPanel Objekt dummy ein PodcastItem zu, aus dem dann später mit dem MouseListener bei einem Klick die relevanten Informationen herausrückt. Soweit so gut. Das Problem ist, dass ich bei sagen wir drei Objekten immer, egal auf welches Panel ich Klicke die Information vom PodcastItem des ersten Schleifendurchlaufs erhalte. Weiß jemand, wie man das ändern kann? Hier ist ein Codeausschnitt. Alles kann ich leider nicht posten, das wäre zu unübersichtlich, da so viel verbunden ist.
Code:
//Die Variable dummy ist vom Typ JPanel
@SuppressWarnings("empty-statement")
public void showPodcast(PodcastItem p) {
boolean b = true;
int i = 1;
String tag;
// dummyPodcast = p;
do {
if ((xX + image.getWidth(observe) <= (this.getWidth() - 30))) {
tag = p.getPodcastTitle();
dummy = new BackgroundP(image, p);
dummy.setName("panelT" + Integer.toString(i));
dummy.setBounds(xX, yY, image.getWidth(observe), image.getHeight(observe2));
dummy.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
areaDummy.setText(dummy.pod.getPodcastDescription());
}
public void mousePressed(MouseEvent e) {
//throw new UnsupportedOperationException("Not supported yet.");
}
public void mouseReleased(MouseEvent e) {
//throw new UnsupportedOperationException("Not supported yet.");
}
public void mouseEntered(MouseEvent e) {
//throw new UnsupportedOperationException("Not supported yet.");
}
public void mouseExited(MouseEvent e) {
//throw new UnsupportedOperationException("Not supported yet.");
}
});
cp.add(dummy);
labDummy = new JLabel();
labDummy.setFont(new Font("Microsoft Sans Serif", Font.PLAIN, 13));
labDummy.setBounds(xX, yY + image.getHeight(observe2) + 3, 200, 15);
labDummy.setText(tag);
cp.add(labDummy);
xX += image.getWidth(observe) + 60;
i++;
repaint();
break;
} else {
xX = 30;
yY += image.getHeight(observe2) + 35;
continue;
}
} while (b == true);
}
Viele Grüße
MyPiano