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();
}
}