JOption Pane Problem

benni84

Grünschnabel
Hallo Zuasammen,

ich habe folgendes Problem. Auf die Label ist ein ActionListener geaddet für ein Kontextmenü (unter anderem mit dem Punkt Löschen)

Wenn man diesen anklickt soll eine Löschfrage (JOptionPane) geöffnet werden. Beim ersten mal klappt auch alles ganz normal.

Wenn man den Menüpunkt beim gleichen Label jedoch ein zweites mal anklickt öffnet sich das JOptionPane dann zwei mal hintereinander.

Beim dritten mal dann drei mal etc. Woran könnte dies Liegen? Und wie kann ich es beheben?

Vielen Dank im Voraus

Benni
 
Kein Problem, dass habe ich bisher nicht gemacht weil das sehr viel Quellcode ist.
Die stelle mit dem JOptionPane habe ich rot markiert.

Die Methode KontaktlisteAktualisieren wird in der initialisierungs Methode ausgeführt.


Quellcode:

public void KontaktlisteAktualisieren(){

// Einlesen des Gesamten Inhalts der Kontaktliste
String EinText = "";
String ZeilenText = "";
int HoehePanel = getJScrollPaneKontaktListe().getHeight();


getBenutzerListe().clear();
getLabelListe_BenutzerNamen().clear();
getPanelListe_BenutzerStatus().clear();


try {
//FileWriter fw = new FileWriter("Datas/Kontakte.txt");
FileReader fr = new FileReader("Datas/Kontakte.txt");

int x = 0;

while ((x = fr.read()) != -1){
EinText += (char)x;
}

// Zerstückeln nach Zeilen
StringTokenizer tokenizerZeilen = new StringTokenizer(EinText, "#");
try{
while (tokenizerZeilen.hasMoreElements()){
ZeilenText = tokenizerZeilen.nextToken();

StringTokenizer tokenizerBenuter = new StringTokenizer(ZeilenText,"|");
String Name_Ein = tokenizerBenuter.nextToken();
String IP_Adresse_Ein = tokenizerBenuter.nextToken();

//System.out.println("Name: " + Name_Ein + " IP: " + IP_Adresse_Ein);

BenutzerListe.add(new Benutzer(Name_Ein,IP_Adresse_Ein));
}
}catch(Exception e){}

int PosY = 10;
for (int i = 0; i < BenutzerListe.size(); i++){

Benutzer User = (Benutzer)BenutzerListe.get(i);


// Label mit den Namen der Kontakte auf das KontaktPanel hinzf�gen
getLabelListe_BenutzerNamen().add(new JLabel(User.getName()));
getSymbolListe_Online().add(new StatusSymbolOnline());
getSymbolListe_Offline().add(new StatusSymbolOffline());
getPopUpKontaktListe().add(new KontaktPopupMenue());

final KontaktPopupMenue popUpKontakt = (KontaktPopupMenue)popUpKontaktListe.get(i);
final Benutzer user = User;

popUpKontakt.setHeader(User.getName() + " " + User.getIp_Adresse());


JLabel labelBenutzer = (JLabel)LabelListe_BenutzerNamen.get(i);
labelBenutzer.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseReleased(java.awt.event.MouseEvent e) {
popUpKontakt.show(e.getComponent(),e.getY(),e.getX());

popUpKontakt.getChatten().addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println(user.getName() + "Hier öffnet später ein Chatfentser");
}
});

popUpKontakt.getBearbeiten().addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
new BenutzerAnlegen(UF_Benuzerverwaltung.this).setVisible(true);
}
});

popUpKontakt.getLoeschen().addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {


if (JOptionPane.showConfirmDialog(jLabelOptionPane, "BlaBla","Bla",0) == 0){

System.out.println(user.getName() + "Kontakt wird gelöscht");

}




}
});

}
});

labelBenutzer.setBounds(20,PosY,150,30);
labelBenutzer.setFont(new Font("Comic Sans MS",Font.BOLD,18));
getJPanelKontaktListe().add(labelBenutzer);





// Panel fïür die Statusbildern hinzufügen
PanelListe_BenutzerStatus.add(new JLabel());
JLabel LabelSymbolBenutzer = (JLabel)PanelListe_BenutzerStatus.get(i);
LabelSymbolBenutzer.setBounds(150, PosY, 30, 30);
LabelSymbolBenutzer.setBackground(Color.BLUE);
getJPanelKontaktListe().add(LabelSymbolBenutzer);

System.out.println(HoehePanel);

if (i >= 7){
HoehePanel += 40;
jPanelKontaktListe.setPreferredSize(new Dimension(jScrollPaneKontaktListe.WIDTH,HoehePanel));
}

PosY += 40;
}

jPanelKontaktListe.repaint();
jScrollPaneKontaktListe.repaint();




} catch (FileNotFoundException e) {
System.out.println("Kontaktliste nicht gefunden");
} catch (IOException e) {
System.out.println("Fehler Beim Einlesen");
e.printStackTrace();
}

}
 
Zurück