R
Ro0kie
Gast
Liebes Java-forum.org!
Komischerweise lierft meine Methode immer ein false. wieso eig muss es doch geklappt haben ???:L
Code (Panel):
Code (Emailadress):
Die Abfrage :
ist komischerweise immer FALSE
Danke im vorhinein :toll:
MfG
Komischerweise lierft meine Methode immer ein false. wieso eig muss es doch geklappt haben ???:L
Code (Panel):
Java:
public class EmailadressPanel extends JPanel {
//JButtons
private JButton hinzufuegen,bearbeiten,loeschen,anzeigen;
//JRadioButton
private JRadioButton loeschenEmailRB,loeschenEintragRB;
private JRadioButton anzeigenAllesRB,anzeigenEintragRB;
//JPanels
private JPanel p1,p2,p3,p4;
private JPanel p1a,p2a,p3a,p4a;
private JPanel leer1,leer2,leer3;
//JTextFields
private JTextField hinzufuegenNameTxt,hinzufuegenEmailsAnzahlTxt;
private JTextField bearbeitenNameTxt,bearbeitenEmailTxt,bearbeitenAlteEmailTxt;
private JTextField loeschenNameTxt,loeschenEmailTxt;
private JTextField anzeigenNameTxt;
//JTextArea
private JTextArea anzeige;
//JLabels
private JLabel hinzufuegenName,hinzufuegenEmailsAnzahl;
private JLabel bearbeitenName,bearbeitenEmail,bearbeitenAlteEmail;
private JLabel loeschenName,loeschenEmail;
private JLabel anzeigenName;
public EmailadressPanel(){
//Buttons init.
hinzufuegen = new JButton("Hinzufügen");
bearbeiten = new JButton("Bearbeiten");
loeschen = new JButton("Löschen");
anzeigen = new JButton("Anzeigen");
//JRadioButtons
loeschenEmailRB = new JRadioButton("Email löschen");
loeschenEintragRB = new JRadioButton("Eintrag löschen");
anzeigenAllesRB = new JRadioButton("Alle Einträge anzeigen");
anzeigenEintragRB = new JRadioButton("Eintrag anzeigen");
// ButtonGroups erstellen und befüllen
ButtonGroup auswahl = new ButtonGroup();
auswahl.add(this.loeschenEintragRB);
auswahl.add(this.loeschenEmailRB);
ButtonGroup auswahl2 = new ButtonGroup();
auswahl2.add(this.anzeigenEintragRB);
auswahl2.add(this.anzeigenAllesRB);
//TextFields init.
hinzufuegenNameTxt = new JTextField();
hinzufuegenEmailsAnzahlTxt = new JTextField();
bearbeitenNameTxt = new JTextField();
bearbeitenEmailTxt= new JTextField();
bearbeitenAlteEmailTxt = new JTextField();
loeschenNameTxt = new JTextField();
loeschenEmailTxt = new JTextField();
anzeigenNameTxt= new JTextField();
//TextArea init.
anzeige = new JTextArea();
//JLabels init.
hinzufuegenName = new JLabel("Name:");
hinzufuegenEmailsAnzahl = new JLabel("Emailsanzahl : (Nur bei nicht vorhanden Namen im Mailbook möglich)");
bearbeitenName = new JLabel("Name:");
bearbeitenEmail = new JLabel("Neue Email:");
bearbeitenAlteEmail = new JLabel("Alte Email:");
loeschenName = new JLabel("Name:");
loeschenEmail = new JLabel("Email:");
anzeigenName = new JLabel("Name:");
//JPanels init.
p1 = new JPanel();
p2 = new JPanel();
p3 = new JPanel();
p4 = new JPanel();
p1a = new JPanel();
p2a = new JPanel();
p3a = new JPanel();
p4a = new JPanel();
leer1 = new JPanel();
leer2 = new JPanel();
leer3 = new JPanel();
//JPanels Layouts setzen
p1.setLayout(new GridLayout(2,1));
p2.setLayout(new GridLayout(2,1));
p3.setLayout(new GridLayout(2,1));
p4.setLayout(new GridLayout(2,1));
p1a.setLayout(new GridLayout(6,1));
p2a.setLayout(new GridLayout(6,1));
p3a.setLayout(new GridLayout(6,1));
p4a.setLayout(new GridLayout(6,1));
//JPanels befüllen
p1.add(hinzufuegen);
p1.add(p1a);
p1a.add(hinzufuegenName);
p1a.add(hinzufuegenNameTxt);
p1a.add(hinzufuegenEmailsAnzahl);
p1a.add(hinzufuegenEmailsAnzahlTxt);
p2.add(bearbeiten);
p2.add(p2a);
p2a.add(bearbeitenName);
p2a.add(bearbeitenNameTxt);
p2a.add(bearbeitenEmail);
p2a.add(bearbeitenEmailTxt);
p2a.add(bearbeitenAlteEmail);
p2a.add(bearbeitenAlteEmailTxt);
p3.add(loeschen);
p3.add(p3a);
p3a.add(loeschenEmailRB);
p3a.add(loeschenEintragRB);
p3a.add(loeschenName);
p3a.add(loeschenNameTxt);
p3a.add(loeschenEmail);
p3a.add(loeschenEmailTxt);
p4.add(anzeigen);
p4.add(p4a);
p4a.add(anzeigenAllesRB);
p4a.add(anzeigenEintragRB);
p4a.add(anzeigenName);
p4a.add(anzeigenNameTxt);
//JPanels unsichtbar machen
p1a.setVisible(false);
p2a.setVisible(false);
p3a.setVisible(false);
p4a.setVisible(false);
//Layout setzen
setLayout(new GridLayout(4,2));
//Komponenten hinzufügen
add(anzeige);
add(p1);
add(leer1);
add(p2);
add(leer2);
add(p3);
add(leer3);
add(p4);
//Elemente zum Actionlistener hinzufügen
EmailadressAction h= new EmailadressAction();
hinzufuegen.addActionListener(h);
bearbeiten.addActionListener(h);
loeschen.addActionListener(h);
anzeigen .addActionListener(h);
loeschenEmailRB.addActionListener(h);
loeschenEintragRB.addActionListener(h);
anzeigenAllesRB.addActionListener(h);
anzeigenEintragRB.addActionListener(h);
hinzufuegenNameTxt.addActionListener(h);
hinzufuegenEmailsAnzahlTxt.addActionListener(h);
bearbeitenNameTxt.addActionListener(h);
bearbeitenEmailTxt.addActionListener(h);
bearbeitenAlteEmailTxt.addActionListener(h);
loeschenNameTxt.addActionListener(h);
loeschenEmailTxt.addActionListener(h);
anzeigenNameTxt.addActionListener(h);
}
private class EmailadressAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
Emailadress mailbook = new Emailadress();
LinkedList<String> maillist = new LinkedList <String>();
if((e.getSource()==hinzufuegen)&&(hinzufuegenNameTxt.getText().trim().length() == 0)&&(hinzufuegenEmailsAnzahlTxt.getText().trim().length() == 0)){
p1a.setVisible(true);
}
if((e.getSource()==hinzufuegen)&&(!hinzufuegenNameTxt.getText().equals("")) && (!hinzufuegenEmailsAnzahlTxt.getText().equals(""))){
if(JOptionPane.showInputDialog("Neuer Name in ihrem Mailbook (y|n)?").equals("y")){
int emailanzahl = Integer.parseInt(hinzufuegenEmailsAnzahlTxt.getText());
for(int i=0;i<emailanzahl;i++){
maillist.add(JOptionPane.showInputDialog("Bitte geben sie die neue Email ein"));
}
boolean status = mailbook.hinzufuegenNeu(hinzufuegenNameTxt.getText(),maillist);
if(status){
JOptionPane.showMessageDialog(null,"Erfolgreich" + "\n" + "Sie haben erfolgreich einen neuen Namen mit " + emailanzahl + " Emails hinzugefüget");
}else{
JOptionPane.showMessageDialog(null,"Fehlgeschlagen");
}
}else{
boolean status = mailbook.hinzufuegen(hinzufuegenNameTxt.getText(),JOptionPane.showInputDialog("Bitte geben sie die neue Email ein."));
if(status){
JOptionPane.showMessageDialog(null,"Erfolgreich" + "\n" + "Sie haben erfolgreich eine neue Email zu dem Namen " + hinzufuegenNameTxt.getText() + " hinzugefügt." );
}else{
JOptionPane.showMessageDialog(null,"Fehlgeschlagen");
}
}
}
if(e.getSource()==bearbeiten){
p2a.setVisible(true);
}
if((e.getSource()==bearbeiten)&&(!bearbeitenNameTxt.getText().equals("")) && (!bearbeitenEmailTxt.getText().equals(""))&&(!bearbeitenAlteEmailTxt.getText().equals(""))){
boolean status =mailbook.bearbeiten(bearbeitenNameTxt.getText(),bearbeitenAlteEmailTxt.getText(),bearbeitenEmailTxt.getText());
System.out.println(""+mailbook.zuArray());
if(status){
JOptionPane.showMessageDialog(null,"Erfolgreich"+ "\n" + "Sie haben erfolgreich die Email " + bearbeitenAlteEmailTxt+ " durch " + bearbeitenEmailTxt+ " ersetzt.");
}
else{
JOptionPane.showMessageDialog(null,"Fehlgeschlagen");
}
}
if(e.getSource()==loeschen){
p3a.setVisible(true);
}
if(e.getSource()==anzeigen){
p4a.setVisible(true);
}
}
}
}
Code (Emailadress):
Java:
public class Emailadress {
private Map<String,List> mails;
/**
* Default-Konstruktor
*/
public Emailadress(){
mails = new TreeMap<String,List>();
}
/**
* Methode, welche es erlaubt nur einen vorhanden Namen
* eine Emailadresse zu zuweisen.
*
* @param name Vorhander Name
* @param mail Neu zu zuordnende Emailadresse.
* @return true Gibt true zurück wenn hinzugefügt.
*/
public boolean hinzufuegen(String name,String mail){
List mailslist = new LinkedList<String>();
mailslist.add(mails.get(name));
mailslist.add(mail);
mails.put(name,mailslist); //TreeMap überschreibt den Eintrag automatisch.
return true;
}
/**
* Methode, welche es erlaubt nur einen komplett neuen Namen und
* Emailadresse einzufügen.
*
* @param name Neuer Name
* @param mails Neue Liste an Emails in einem Set,
* sodass jede Email max. einmal vorkommen darf.
*/
public boolean hinzufuegenNeu(String name,LinkedList emails){
mails.put (name,emails);
return true;
}
/**
* Methode zu bearbeiten eines Namens.
*
* @param name Vorhandener Name
* @param email Zu ändernde Email
* @param neuEmail Neue zu zuweisende Email.
* @return Gibt true zurück wenn erfolgreich.Gibt true zurück wenn erfolgreich.
*/
public boolean bearbeiten(String name,String email, String neuEmail){
List mailslist = new LinkedList<String>();
mailslist.add(mails.get(name));
if( mailslist.contains(email)){
mailslist.add(neuEmail);
mailslist.remove(email);
mails.put(name,mailslist); //TreeMap überschreibt den Eintrag automatisch.
return true;
}
else{
return false;
}
}
/**
* Methode zum löschen eines Namens und seiner Emailadressen.
*
* @param name Zu löschender Eintrag.
* @return Gibt true zurück wenn erfolgreich.
*/
public boolean loeschenEintrag(String name){
mails.remove(name);
return true;
}
/**
* Zum Löschen einer einzelnen Email in einem Namen.
*
* @param name
* @param email
* @return Gibt true zurück wenn erfolgreich.
*/
public boolean loeschenEmail(String name,String email){
List mailslist = mails.get(name);
if(mailslist.contains(email)){
mailslist.remove(email);
mails.put(name,mailslist); //TreeMap überschreibt den Eintrag automatisch.
return true;
}
else{
return false;
}
}
/**
* Zum anzeigen eines einzelnen Eintarges.
*
* @param name Anzuzeigender Name.
* @return txt Gibt den ganzen Eintrag in einem String zurück.
*/
public String zeigeName(String name){
List mailslist = mails.get(name);
String txt =mailslist.toString();
return txt;
}
/**
* Zum anzeigen des ganzen Emailadressbuches.
*
* @return Gibt das gesamte Emailadressbuch in einem String-Array zurück.
*/
public String zuArray(){
String txt="";
Set eintraege = mails.entrySet();// TreeMap wird in eine Set gewandelt
Iterator i2 = eintraege.iterator(); //Iterator des Set erstellen
while (i2.hasNext()) {
Map.Entry entry = (Map.Entry)i2.next();
Object key = entry.getKey(); // Gibt den Schlüssel
Object value = entry.getValue(); // Gibt den Wert
txt = txt +(key + " : " + value+"\n");
}
return txt;
}
}
Die Abfrage :
Java:
if(status){
JOptionPane.showMessageDialog(null,"Erfolgreich"+ "\n" + "Sie haben erfolgreich die Email " + bearbeitenAlteEmailTxt+ " durch " + bearbeitenEmailTxt+ " ersetzt.");
}
else{
JOptionPane.showMessageDialog(null,"Fehlgeschlagen");
}
Danke im vorhinein :toll:
MfG
Zuletzt bearbeitet von einem Moderator: