• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Java Array auslesen

FabKir

Alkmene
Registriert
26.01.14
Beiträge
30
hallo allerseits,

habe angefangen ein einfaches Programm zur Passwort Verwaltung zu schreiben(nix ernsthaftes eher was zu übungszwecken)
Doch jetzt komme ich nicht mehr weiter bei dem auslesen der Array List.
Hat da vllt. einer eine Idee wie man das realisieren kann?

Klasse Passwörter:
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class Passwörter
{
    public static void main(String[]args)
    {
        Passwörter p = new Passwörter();
        p.fenster();
    }
    JFrame window;
    JPanel panel;
    JPanel panel2;
    JButton save;
    JButton show;
    JTextField feld1;
    JTextField feld2;
    JTextField feld3;
    String eingabe1;
    String eingabe2;
    String eingabe3;
    String ausgabe1;

    public void fenster()
    {
        window = new JFrame("Datenbank");
        panel = new JPanel();
        panel2 = new JPanel();
        save = new JButton("Speichern");
        show = new JButton("Anzeigen");
        feld1 = new JTextField("Name");
        feld2 = new JTextField("Anmeldenamen");
        feld3 = new JTextField("Passwort");
    
        save.addActionListener(new Speichern());
        show.addActionListener(new Anzeigen());
    
        panel.setLayout(new BoxLayout(panel,BoxLayout.X_AXIS));
        panel.add(save);
        panel.add(show);
    
    
        panel2.setLayout(new BoxLayout(panel2,BoxLayout.Y_AXIS));
        panel2.add(feld1);
        panel2.add(feld2);
        panel2.add(feld3);
    
        window.setLayout(new BorderLayout());
        window.add(panel, BorderLayout.SOUTH);
        window.add(panel2, BorderLayout.NORTH);
        window.setSize(400,300);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setLocationRelativeTo(null);
        window.setVisible(true);
    
    }

    public class Speichern implements ActionListener
    {
        public void actionPerformed(ActionEvent event)
        {
            try{
            
                    FileInputStream fs = new FileInputStream("datenbank.ser");
                    ObjectInputStream os = new ObjectInputStream(fs);
                    Object ob = os.readObject();
                    Datenbank datenbank =(Datenbank)ob;
                    eingabe1 = feld1.getText();
                    eingabe2 = feld2.getText();
                    eingabe3 = feld3.getText();
                    datenbank.addEintrag(new Eintrag(eingabe1,eingabe2,eingabe3));
                    os.close();
                    FileOutputStream fs2 = new FileOutputStream("datenbank.ser");
                    ObjectOutputStream os2 = new ObjectOutputStream(fs2);
                    os2.writeObject(datenbank);
                    os2.close();
                }
            catch(IOException ex)
                {
                    System.out.println("Es gab ein Problem mit dem System");
                }    
            catch(Exception e)
            {
                System.out.println("Es gab ein allegemeines Problem");
            }
            feld1.setText("Name");
            feld2.setText("Anmeldenamen");
            feld3.setText("Passwort");
    
        
    }
}
    public class Anzeigen implements ActionListener
    {
        public void actionPerformed(ActionEvent event)
        {
        
        
            try
            {
                String eingabe = feld1.getText();
                FileInputStream fs = new FileInputStream("datenbank.ser");
                ObjectInputStream os = new ObjectInputStream(fs);
                Object ob1 = os.readObject();
                Datenbank datenbank = (Datenbank)ob1;
                              
                String anmeldename = datenbank.getAnmeldename(eingabe);
                feld2.setText(anmeldename);
                String passwort = datenbank.getPasswort(eingabe);
                feld3.setText(passwort);
                os.close();
            
            
            }
            catch (IOException ex)
            {
                System.out.println("Es gab eine IO Exception");
            }
            catch (Exception ex)
            {
                System.out.println("Es gab eine allgemeine Exception");
            }
    
        
        
        }
    }
}
Klasse Datenbank:
Code:
import java.io.*;
import java.util.ArrayList;

public class Datenbank implements Serializable
{
    ArrayList<Eintrag> eintragAl = new ArrayList<Eintrag>();

    void addEintrag (Eintrag einEintrag)
    {
        eintragAl.add(einEintrag);
        
    }
    public String getPasswort(String a)
    {
       Eintrag eintrag = Eintrag.Al.get()
       String passwort = eintrag.getAnmeldename();
       return passwort;
    }
    public String getAnmeldename (String a)
    {
        Eintrag eintrag = eintragAl.get();
        String anmeldename = eintrag.getAnmeldename();
        return anmeldename;
    }

}
Klasse Eintrag:
Code:
import java.io.*;

public class Eintrag implements Serializable
{
    String name,anmeldename,passwort;

    Eintrag(String a,String b, String c)
    {
        name = a;
        anmeldename = b;
        passwort = c;
    }
    public String getAnmeldename()
    {
        return anmeldename;
    }

    public String getPasswort()
    {
        return passwort;
    }

}
 
Zuletzt bearbeitet:

bezierkurve

Halberstädter Jungfernapfel
Registriert
12.06.05
Beiträge
3.860
Verwende bitte Code-Tags und rücke deinen Code ein.
Wo liegt das Problem?
 

FabKir

Alkmene
Registriert
26.01.14
Beiträge
30
mit der inneren klasse "Speichern" lese ich 3 Strings ein die in einer klasse "Einträge" gespeichert werden, die klasse Eintrag wird wiederum in die Klasse "Datenbank" gesteckt. das Funktioniert alles auch soweit.
mit der inneren klasse "Anzeigen" lese ich den 1.String ein (jetzt kommt der Punkt wo ich nicht weiter komme)mit diesem String versuche ich jetzt die dazu gehörige Klasse "Eintrag" zu finden und die anderen 2 Strings auszugeben.
 

bezierkurve

Halberstädter Jungfernapfel
Registriert
12.06.05
Beiträge
3.860
Wenn du einen Eintrag in der `List` suchst, musst du durchiterieren, in etwa so:
Code:
public String getAnmeldename(String a) {
    for (Eintrag eintrag : eintragAl) {
        if (eintrag.name.equals(a)) {
            return eintrag.anmeldename;
        }
    }
    return null;
}
... oder du verwendest eine `Map` statt der `List`, in der der Name der Key ist und der Value jeweils deine `Eintrag`-Instanzen.
 

FabKir

Alkmene
Registriert
26.01.14
Beiträge
30
jap Funktioniert, vielen Dank für die Schnelle Antwort.