GUI -Textfelder über zweite Gui ändern

dopeD

Grünschnabel
GUI -Textfelder über zweites GUI ändern

Hallo liebe Forum-Mitglieder!
Zu aller erst möchte ich einmal DANKE an die vielen Spazialisten und bemühten Supporter sagen!Ich finde es toll, dass Leute, die eig. keine Hilfe benötigen trotzdem in solchen Foren aktiv sind und ihre Zeit "opfern" ;] um anderen zu hefen!

Nun zu meiner Frage:

Ich beschäftige mich in meinem Informatik Schulkurs( Gymnasium) im Moment mit Java.
Nun bin ich an einer Aufgabe angelangt, in der ich eine Adressliste (wie ein Telefonbuch) mit hilfe einer Liste (list) anlegen bzw. verwalten soll.

Ich suche bereits seit mehrs als zwei Tagen -erfolglos- im Netz nach Lösungen für mein Problem.Ich bin dabei bereits des öfteren auf dieses Forum gestoßen, habe aber entweder die zu komplexen Quelltexte nicht verstanden, oder das Problem nicht mal gefunden.

Das Problem:

Ich möchte die Textfelder einer Klasse Adressliste(diese enthält das Haupt-GUI) über ein anderes GUI bzw. eine andere Klasse ändern.
Wenn ich in der Haupt-GUI auf einen Button klicke, so öffnet sich eine Art Popup-Fenster (eine zweite, kleinere GUI), in der wiederum durch einen Button über den Action Listener ein Programm ausgeführt wird, welches die Texfelder der Main-GUI ändert.
Meine Frage jetzt: Wie schaffe ich es, dass ich aus einer anderen Klasse, die meine zweite GUI enthält, die Textfelder der Main-GUI zu verändern?

Ich hoffe ihr habt verstanden, was ich meine?! ;]
Ach ja wenn ihr mir antwortet, denkt bitte daran, dass ich nur mangelnde Kenntnisse über Java habe.Also sprecht mit mir als müsstet ihr einem Kind etwas erklären... xD

Vielen Dank für eure Mühen, bis dahin

MfG Doped
PS: Hoffe ich habe alles richtig gemacht?...richtiger Bereich für Post etc..
 
Zuletzt bearbeitet:
Hallo,

hier mal mein vorschlag.

In der Klasse wo deine Textfelder geändert werden sollen, ich nenne Sie mal gui1, schreibst du dir setter-funktionen für die textfelder. die sehen etwa so aus:

Code:
public void setTextFuerTextfeld1(String strText)
{ 
              textfeld1.setText(strText);
}

das machst du für alle deine textfelder.

An deine zweite gui, nennen wir sie gui2, übernimmst du gui1. am besten wäre es wenn du das im konstruktor machen würdest.

Code:
//Variable um gui1 anzusprechen
private gui1 g1;
public gui2 (gui1 refGui1)
{
       this.g1 = refGui1;
}

jetzt kannst du aus gui2 heraus über den aufruf
Code:
this.g1.setTextFuerTextfeld1("Hier text")
den text für die Textfelder ändern.
 
Hey!
Danke erstmal für die schnelle Antwort!

Ich hab dabei allerdings ein problem...
Wie heißt mein GUI? so wie die klasse? oder so wie es mit
Code:
super("AdressListe")
festgelegt ist?

ich habe das schonmal so geändert wie ich das für richtig hielt... :confused:

aller dings hat er damit ein problem....
hier mal die fehlermeldung der console:
Code:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at PopupFenster.actionPerformed(PopupFenster.java:66)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:19
95)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.jav
a:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242
)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
istener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6038)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
        at java.awt.Component.processEvent(Component.java:5803)
        at java.awt.Container.processEvent(Container.java:2058)
        at java.awt.Component.dispatchEventImpl(Component.java:4410)
        at java.awt.Container.dispatchEventImpl(Container.java:2116)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322
)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)

        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
        at java.awt.Container.dispatchEventImpl(Container.java:2102)
        at java.awt.Window.dispatchEventImpl(Window.java:2429)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre
ad.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.
java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)

        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
zur erklärung die zweite GUI-klasse heißt PopupFenster.Die Klasse mit dem ertsen GUI heißt AdressListe.
Kannst du mir die Befehle vllt mal erklären, damit ich weiß was die machen?
Dann weiß ich vllt auch wo der fehler ist.
Danke ;-)
 
also gui1 ist deine adressliste (der name deiner klasse) und gui2 ist deine klasse popupfenster.

vielleicht solltest du mal deinen code posten...
mit der fehlermeldung so an sich kann ich dir nicht sagen wo der fehler liegt.
ich kann dir nur sagen das irgendwas null ist, also nicht initialisiert.

setText setzt einfach den text der im feld angezeigt wird.
 
ok also hier die Klassen:

Code:
//  Einfache graphische Benutzeroberfläche zu einer String-Liste

//                                                     Rm, 31/08/2005
//                                                     weihsbach 1/10/08
import java.awt.*;
import java.awt.event.*;
import javax.swing.*; 

public class AdressListe extends JFrame implements ActionListener
{
  // start attributes
    private JTextField textFeldNachname,textFeldVorname,textFeldStraße,textFeldHausNummer,textFeldPlz,textFeldOrt,textFeldTelefonNummer,textFeldSpeichernUnter;//textFeldSuche;
    private JLabel labelNachname,labelVorname,labelStraße,labelHausNummer,labelOrt,labelTelefonNummer,labelPlz,labelSuche,labelSpeichernUnter;
    private NamensList dieseListe = new NamensList();

  // end attributes
    public AdressListe()
    {
        super("AdressListe");
        this.getContentPane().setBackground(Color.lightGray);
        this.getContentPane().setLayout(null);

        //Textfelder zur Ein- und Ausgabe der Daten
        textFeldNachname = new JTextField (20);
        textFeldNachname.setBounds (230, 80, 150, 30);
        this.getContentPane().add (textFeldNachname);
        textFeldVorname = new JTextField (20);
        textFeldVorname.setBounds (390, 80, 150, 30);
        this.getContentPane().add (textFeldVorname);
        textFeldStraße = new JTextField (20);
        textFeldStraße.setBounds (230, 160, 150, 30);
        this.getContentPane().add (textFeldStraße);
        textFeldHausNummer = new JTextField (20);
        textFeldHausNummer.setBounds (390, 160, 150, 30);
        this.getContentPane().add (textFeldHausNummer);
        textFeldPlz = new JTextField (20);
        textFeldPlz.setBounds (230, 220, 150, 30);
        this.getContentPane().add (textFeldPlz);
        textFeldOrt = new JTextField (20);
        textFeldOrt.setBounds (390, 220, 150, 30);
        this.getContentPane().add (textFeldOrt);
        textFeldTelefonNummer = new JTextField (20);
        textFeldTelefonNummer.setBounds (230, 300, 150, 30);
        this.getContentPane().add (textFeldTelefonNummer);
        textFeldSpeichernUnter = new JTextField (20);
        textFeldSpeichernUnter.setBounds (390, 300, 150, 30);
        textFeldSpeichernUnter.setText ("Dateiname");
        this.getContentPane().add (textFeldSpeichernUnter);
        //textFeldSuche = new JTextField (20);
        //textFeldSuche.setBounds (230, 10, 310, 30);
        //textFeldSuche.setText ("Bitte einen Nachnamen eingeben.");
        //this.getContentPane().add (textFeldSuche);

        //Labels
        labelNachname=new JLabel("Nachname");
        labelNachname.setBounds(230,50,140,30);
        this.add(labelNachname);
        labelVorname=new JLabel("Vorname");
        labelVorname.setBounds(390,50,140,30);
        this.add(labelVorname);
        labelStraße=new JLabel("Straße");
        labelStraße.setBounds(230,130,140,30);
        this.add(labelStraße);
        labelHausNummer=new JLabel("Haus Nr.:");
        labelHausNummer.setBounds(390,130,140,30);
        this.add(labelHausNummer);
        labelPlz=new JLabel("Postleitzahl");
        labelPlz.setBounds(230,190,140,30);
        this.add(labelPlz);
        labelOrt=new JLabel("Ort");
        labelOrt.setBounds(390,190,140,30);
        this.add(labelOrt);
        labelTelefonNummer=new JLabel("Telefonnummer");
        labelTelefonNummer.setBounds(230,270,140,30);
        this.add(labelTelefonNummer);
        labelSpeichernUnter=new JLabel("Speichern unter:");
        labelSpeichernUnter.setBounds(390,270,140,30);
        this.add(labelSpeichernUnter);

        //Dialog-Buttons
        JButton button2 = new JButton("Einfügen");
        button2.setBounds (50, 60, 150, 25);
        button2.setBackground (Color.red);
        button2.addActionListener(this);
        this.getContentPane().add(button2);
        JButton button3 = new JButton("Nächster Eintrag");
        button3.setBounds (50, 90, 150, 25);
        button3.setBackground (Color.red);
        button3.addActionListener(this);
        this.getContentPane().add(button3);
        JButton button4 = new JButton("Vorheriger Eintrag");
        button4.setBounds (50, 120, 150, 25);
        button4.setBackground (Color.red);
        button4.addActionListener(this);
        this.getContentPane().add(button4);
        JButton button5 = new JButton("zum Anfang");
        button5.setBounds (50, 150, 150, 25);
        button5.setBackground (Color.red);
        button5.addActionListener(this);
        this.getContentPane().add(button5);
        JButton button6 = new JButton("zum Ende");
        button6.setBounds (50, 180, 150, 25);
        button6.setBackground (Color.red);
        button6.addActionListener(this);
        this.getContentPane().add(button6);
        JButton button7 = new JButton("Löschen");
        button7.setBounds (50, 210, 150, 25);
        button7.setBackground (Color.red);
        button7.addActionListener(this);
        this.getContentPane().add(button7);
        JButton button8 = new JButton("Speichern");
        button8.setBounds (50, 240, 150, 25);
        button8.setBackground (Color.red);
        button8.addActionListener(this);
        this.getContentPane().add(button8);
        JButton button9 = new JButton("Laden");
        button9.setBounds (50, 270, 150, 25);
        button9.setBackground (Color.red);
        button9.addActionListener(this);
        this.getContentPane().add(button9);
        JButton button11 = new JButton("Suche");
        button11.setBounds (50, 10, 150, 30);
        button11.setBackground (Color.red);
        button11.addActionListener(this);
        this.getContentPane().add(button11);
                
        //Ende-Button
        JButton buttonEnd = new JButton("Ende");
        buttonEnd.setBounds (50, 330, 150, 25);
        buttonEnd.setBackground (Color.red);
        buttonEnd.addActionListener(this);
        this.getContentPane().add(buttonEnd);

        //Window-Listener
        addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent event)
            {
                setVisible(false);
                dispose();
                System.exit(0);
            }
        });
    }
    


    // start methods

    public void actionPerformed(ActionEvent event)
    {
        String cmd = event.getActionCommand();
        if (cmd.equals("Suche"))
        {
            PopupFenster frame = new PopupFenster();
            frame.setSize(500,300);
            frame.setVisible(true);
            //dieseListe.suche(textFeldSuche.getText());
            //if(dieseListe.isBehind() == false)
            //{
            //    Eintrag getEintrag = (Eintrag)dieseListe.getItem();
            //    textFeldNachname.setText (getEintrag.getNachname());
            //    textFeldVorname.setText (getEintrag.getVorname());
            //    textFeldStraße.setText (getEintrag.getStraße());
            //    textFeldHausNummer.setText (getEintrag.getHausNummer());
            //    textFeldPlz.setText (getEintrag.getPlz());
            //    textFeldOrt.setText (getEintrag.getOrt());
            //    textFeldTelefonNummer.setText (getEintrag.getTelefonNummer());
            //}
            //else
            //{
            //    String aktuellerSuchString=textFeldSuche.getText();
            //    textFeldSuche.setText("Kein Eintrag für"+" "+"'"+aktuellerSuchString+"'"+" "+"vorhanden");
            //    textFeldNachname.setText ("");
            //    textFeldVorname.setText ("");
            //    textFeldStraße.setText ("");
            //    textFeldHausNummer.setText ("");
            //    textFeldPlz.setText ("");
            //    textFeldOrt.setText ("");
            //    textFeldTelefonNummer.setText ("");
            //}
        }

        else if (cmd.equals("Einfügen"))
        {
            Eintrag neuerEintrag = new Eintrag(textFeldNachname.getText(),
                                            textFeldVorname.getText(),
                                            textFeldStraße.getText(),
                                            textFeldHausNummer.getText(),
                                            textFeldPlz.getText(),
                                            textFeldOrt.getText(),
                                            textFeldTelefonNummer.getText());

            dieseListe.insert(neuerEintrag);
            textFeldNachname.setText ("");
            textFeldVorname.setText ("");
            textFeldStraße.setText ("");
            textFeldHausNummer.setText ("");
            textFeldPlz.setText ("");
            textFeldOrt.setText ("");
            textFeldTelefonNummer.setText ("");
        }

        else if (cmd.equals("zum Anfang"))
        {
            dieseListe.toFirst();
            if (dieseListe.isBehind())
            {
                textFeldNachname.setText("Die Liste ist leer!");
                textFeldVorname.setText("");
                textFeldStraße.setText("");
                textFeldHausNummer.setText("");
                textFeldPlz.setText("");
                textFeldOrt.setText("");
                textFeldTelefonNummer.setText("");
            }

            else
            {
                Eintrag getEintrag = (Eintrag)dieseListe.getItem();          //Ausgabe der Einträge
                textFeldNachname.setText(getEintrag.getNachname());          //
                textFeldVorname.setText(getEintrag.getVorname());            //
                textFeldStraße.setText(getEintrag.getStraße());              //
                textFeldHausNummer.setText(getEintrag.getHausNummer());      //
                textFeldPlz.setText(getEintrag.getPlz());                    //
                textFeldOrt.setText(getEintrag.getOrt());                    //
                textFeldTelefonNummer.setText(getEintrag.getTelefonNummer());//
            }
        }

        else if (cmd.equals("zum Ende"))
        {
            dieseListe.toLast();
            if (dieseListe.isInFrontOf())
            {
                textFeldNachname.setText("Die Liste ist leer!");
                textFeldVorname.setText("");
                textFeldStraße.setText("");
                textFeldHausNummer.setText("");
                textFeldPlz.setText("");
                textFeldOrt.setText("");
                textFeldTelefonNummer.setText("");
            }

            else
            {
                Eintrag getEintrag = (Eintrag)dieseListe.getItem();          //Ausgabe der Einträge
                textFeldNachname.setText(getEintrag.getNachname());          //
                textFeldVorname.setText(getEintrag.getVorname());            //
                textFeldStraße.setText(getEintrag.getStraße());              //
                textFeldHausNummer.setText(getEintrag.getHausNummer());      //
                textFeldPlz.setText(getEintrag.getPlz());                    //
                textFeldOrt.setText(getEintrag.getOrt());                    //
                textFeldTelefonNummer.setText(getEintrag.getTelefonNummer());//
            }
        }
        else if (cmd.equals("Nächster Eintrag"))
        {
            dieseListe.next();
            if (dieseListe.isBehind())
            {
                textFeldNachname.setText("Bin hinter der Liste");
                textFeldVorname.setText("");
                textFeldStraße.setText("");
                textFeldHausNummer.setText("");
                textFeldPlz.setText("");
                textFeldOrt.setText("");
                textFeldTelefonNummer.setText("");
            }

            else
            {
                Eintrag getEintrag = (Eintrag)dieseListe.getItem();          //Ausgabe der Einträge
                textFeldNachname.setText(getEintrag.getNachname());          //
                textFeldVorname.setText(getEintrag.getVorname());            //
                textFeldStraße.setText(getEintrag.getStraße());              //
                textFeldHausNummer.setText(getEintrag.getHausNummer());      //
                textFeldPlz.setText(getEintrag.getPlz());                    //
                textFeldOrt.setText(getEintrag.getOrt());                    //
                textFeldTelefonNummer.setText(getEintrag.getTelefonNummer());//
            }
        }

        else if (cmd.equals("Vorheriger Eintrag")){
            dieseListe.previous();
            if (dieseListe.isInFrontOf())
            {
                textFeldNachname.setText("Bin vor der Liste");
                textFeldVorname.setText("");
                textFeldStraße.setText("");
                textFeldHausNummer.setText("");
                textFeldPlz.setText("");
                textFeldOrt.setText("");
                textFeldTelefonNummer.setText("");
            }

            else
            {
                Eintrag getEintrag = (Eintrag)dieseListe.getItem();          //Ausgabe der Einträge
                textFeldNachname.setText(getEintrag.getNachname());          //
                textFeldVorname.setText(getEintrag.getVorname());            //
                textFeldStraße.setText(getEintrag.getStraße());              //
                textFeldHausNummer.setText(getEintrag.getHausNummer());      //
                textFeldPlz.setText(getEintrag.getPlz());                    //
                textFeldOrt.setText(getEintrag.getOrt());                    //
                textFeldTelefonNummer.setText(getEintrag.getTelefonNummer());//
            }
        }

        else if (cmd.equals("Löschen")){
            dieseListe.remove();
            if (dieseListe.isEmpty())
            {
                textFeldNachname.setText("Die Liste ist jetzt leer");
                textFeldVorname.setText("");
                textFeldStraße.setText("");
                textFeldHausNummer.setText("");
                textFeldPlz.setText("");
                textFeldOrt.setText("");
                textFeldTelefonNummer.setText("");
            }

            else
            {
                Eintrag getEintrag = (Eintrag)dieseListe.getItem();          //Ausgabe der Einträge
                textFeldNachname.setText(getEintrag.getNachname());          //
                textFeldVorname.setText(getEintrag.getVorname());            //
                textFeldStraße.setText(getEintrag.getStraße());              //
                textFeldHausNummer.setText(getEintrag.getHausNummer());      //
                textFeldPlz.setText(getEintrag.getPlz());                    //
                textFeldOrt.setText(getEintrag.getOrt());                    //
                textFeldTelefonNummer.setText(getEintrag.getTelefonNummer());//
            }
        }

        else if (cmd.equals("Speichern"))
        {
                dieseListe.save(textFeldSpeichernUnter.getText());
        }

        else if (cmd.equals("Laden"))
        {

        }

        else if (cmd.equals("Ende")) {
            setVisible(false);
            dispose();
            System.exit(0);
        }
    }
    
    public void setTextFuerTextfeldNachname(String strText)
    {
                  textFeldNachname.setText(strText);
    }
  // end methods
}

Code:
/**
  *
  * Beschreibung.
  *
  * @version 1.1 vom 1.10.2008
  * @author  Weihsbach
  */

class Eintrag
{
  // start attributes
    private String lNachname;
    private String lVorname;
    private String lStraße;
    private String lHausNummer;
    private String lPlz;
    private String lOrt;
    private String lTelefonNummer;
  // end attributes

    public Eintrag(String pNachname,String pVorname,String pStraße,String pHausNummer,String pPlz,String pOrt,String pTelefonNummer)
    {
        lNachname=pNachname;
        lVorname=pVorname;
        lStraße=pStraße;
        lHausNummer=pHausNummer;
        lPlz=pPlz;
        lOrt=pOrt;
        lTelefonNummer=pTelefonNummer;
    }

    // get-Methoden
    String getNachname()
    {
      return lNachname;
    }
    String getVorname()
    {
      return lVorname;
    }
    String getStraße()
    {
      return lStraße;
    }
    String getHausNummer()
    {
      return lHausNummer;
    }
    String getPlz()
    {
      return lPlz;
    }
    String getOrt()
    {
      return lOrt;
    }
    String getTelefonNummer()
    {
      return lTelefonNummer;
    }
}

Code:
// 09.11.07
import java.io.*;

public class List implements Serializable
{ private Node hHead, hTail, kCurrent;

  public class Node implements Serializable
  { private Object kContent;
    private Node kPrev, kNext;
  
    public Node ( Object pContent, Node pPrev, Node pNext)
    { kContent = pContent;
      kPrev = pPrev;
      kNext = pNext;
    }
  
    public void setContent ( Object pContent )
    { kContent = pContent; }
  
    public Object content()
    { return kContent; }
  
    public void setNext ( Node pNext )
    { kNext = pNext; }
    
    public Node next()
    { return kNext; }

    public void setPrev ( Node pPrev )
    { kPrev = pPrev; }
    
    public Node prev()
    { return kPrev; }
  }
   
  public List ()
  {
   hHead = new Node(null,null,null);
   hTail = new Node(null,hHead,null);
   kCurrent=hHead;
   hHead.setNext(hTail);
  }
  
  private void connectNodes(Node pLNode,Node pRNode)
  {
    pLNode.setNext(pRNode);
    pRNode.setPrev(pLNode);
  }
  
  public boolean isEmpty()
  { return hHead.next()==hTail; }
  
  public boolean isInFrontOf()
  { return kCurrent == hHead; }
  
  public boolean isBehind()
  { return kCurrent == hTail; }
  
  public void next()
  { if ( !this.isBehind()  )
      kCurrent = kCurrent.next();
  }

  public void previous()
  { if ( !this.isInFrontOf()  )
      kCurrent = kCurrent.prev();
  }

  public void toFirst()
  { kCurrent = hHead.next(); }

  public void toLast()
  { kCurrent=hTail.prev(); }

  public Object getItem()
  { return kCurrent.content(); }

  public void replace ( Object pContent )
  { if ( !(this.isInFrontOf() || this.isBehind()) )
      kCurrent.setContent(pContent); }

  public void insertInFrontOf ( Object pContent )
  { Node lNewNode;
    if (this.isInFrontOf())
      this.next();
    lNewNode=new Node(pContent,kCurrent.prev(),kCurrent);
    kCurrent.kPrev.setNext(lNewNode);
    kCurrent.setPrev(lNewNode);
  }

  public void insertBehind ( Object pContent )
  { Node lNewNode;
    if (this.isBehind())
       this.previous();
    lNewNode=new Node(pContent,kCurrent,kCurrent.next());
    kCurrent.kNext.setPrev(lNewNode);
    kCurrent.setNext(lNewNode);
  }


  public void remove()
  { if ( !(this.isInFrontOf() || this.isBehind() ) ) {
      this.connectNodes(kCurrent.prev(),kCurrent.next());
      kCurrent=kCurrent.next();
    }
  }
  
  public void free()
  {
    while (!this.isEmpty() ) {
      this.toFirst();
      this.remove();
    }
  }
   /**
     save() speichert die vollständige List sequentiell in ihrem
     aktuellen Aufbau, d.h. mit den Werten und der Verknüpfung als Datei.
     Dabei hierbei Fehler auftreten können, müssen diese abgefangen werden
     (TP: ioresult). In JAVA werden diese Exceptions mit einer try-catch-
     Konstruktion behandelt. Dabei wird im try-Block die Anweisung ausgeführt
     und im catch-Teil eine mögliche Exception abgefangen, d.h. im Normallfall
     wird eine entsprechende Meldung ausgegeben. Alle Dateien werden in JAVA als
     Streams implementiert, hier also als FileOutputStream. Zum Instanzieren
     wird dabei der Name der Datei erwartet. Er kann mit einem absoluten Pfad
     angegeben werden oder nur als Dateiname, wobei dann die Datei im aktuellen
     Verzeichnis angelegt wird (In Netzwerken müssen dabei dann die
     Berechtigungen vorhanden sein!). Anschlie§end wird der Typ der Datei -
     hier ObjectOutputStream festgelegt, da wir komplette Objekte speichern
     wollen. Mit writeObject(kopf) wird nun der Kopf der List und alle damit
     verbundenen Objekte in den Stream ausgegeben Mit flush() werden die Daten
     aus dem Puffer in den Stream, d.h. die Datei übertragen. Abschlie§end muss
     mit close() der FileOutputStream korrekt geschlossen werdem. */

    public void save (String dateiName)
    {
        try
        {
            FileOutputStream datei = new FileOutputStream(dateiName);
            try
            {
                ObjectOutputStream object = new ObjectOutputStream(datei);
                try
                {
                    object.writeObject(hHead);
                    object.writeObject(hTail);
                    object.flush();
                }
                catch(IOException e)
                {
                    System.out.println("Fehler beim Schreiben des Objektes");
                }
                datei.close();
            }
            catch(IOException e)
            {
                System.out.println("Fehler beim Anlegen des Streams (schreiben)");
            }
        }
        catch(FileNotFoundException e)
        {
            System.out.println("Fehler beim Öffnen der Datei zum Schreiben");
        }
    }

    /** load lädt die komplette List mit ihren Verknüpfungen.
    Hier gelten prinzipiell die gleichen Regeln wie in der Methode saveListe().
    Wichtig ist nur die Anweisung  dummyAtFront =(Element)object.readObject();.
    Hiermit wird aus dem Stream ein Objekt eingelesen, das mit (Element) auf
    unser aktuelles Element gecastet - also auf Typverträglichkeit geprüft - wird.
    Anschließend wird es dummyAtFront zugewiesen. Da aber die gesamte List
    gespeichert wurde, haben wir nicht nur das Kopfelement, sondern alle daran
    hängenden Elemente wieder geladen. Um korrekt weiterarbeiten zu können,
    muss jetzt noch ein toFirst ausgelöst werden, was in der Listenanwendung
    erfolgt. */

    public void load(String dateiName)
    {
        try
        {
            FileInputStream datei = new FileInputStream(dateiName);
            try
            {
                ObjectInputStream object = new ObjectInputStream(datei);
                try
                {
                    hHead=(Node)object.readObject();
                    hTail=(Node)object.readObject();
                }
                catch(ClassNotFoundException e)
                {
                    System.out.println("Fehler beim Lesen des Objektes");
                }
                datei.close();
            }
            catch(IOException e)
            {
                System.out.println("Fehler beim Anlegen des Streams (lesen)");
            }
        }
        catch(FileNotFoundException e)
        {
            System.out.println("Fehler beim Öffnen der Datei zum Lesen");
        }
        this.toFirst();
    }

}

Code:
/**
  *
  * Beschreibung.
  *
  * @version 1.1 vom 1.10.2008
  * @author  Weihsbach
  */

public class NamensList extends List
{
    //insert
    public void insert(Eintrag neuerEintrag)
    {
        super.toFirst();
        while (super.isBehind() == false)
        {
            if(this.getEintrag().getNachname().compareTo(neuerEintrag.getNachname())==0)
            {
                super.replace(neuerEintrag);                                            // Leereintrag wird ersetzt
                break;
            }
            if(this.getEintrag().getNachname().compareTo(neuerEintrag.getNachname())>0)
            {
                super.insertInFrontOf(neuerEintrag);                                   // replace würde überschreiben, also insert davor
                break;
            }
            else
                super.next();
        }
        if (super.isBehind() == true)
            super.insertInFrontOf(neuerEintrag);
    }

    //suche
    public void suche (String pNachname)
    {
        super.toFirst();
        while (super.isBehind() == false && this.getEintrag().getNachname().compareTo(pNachname)!=0)
        {
            if(this.getEintrag().getNachname().compareTo(pNachname)!=0)
                 super.next();
        }
    }

    //Methode, die den aktuellen Eintrag liefert
    public Eintrag getEintrag()
    {
        return (Eintrag)super.getItem();    //  kompletter eintrag wird in die Gui "geholt"
    }
}

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class PopupFenster extends JFrame implements ActionListener
{
     private JTextField textFeldSuche;
     private NamensList dieseListe = new NamensList();
     //Variable um gui1 anzusprechen
     private AdressListe g1;
     public PopupFenster (AdressListe refAdressListe)
     {
            this.g1 = refAdressListe;
     }

     
     public PopupFenster()
     {

            super("Suche");
            this.getContentPane().setBackground(Color.lightGray);
            this.getContentPane().setLayout(null);
            
                  //Dialog-Button
            JButton button1 = new JButton("Suche");
            button1.setBounds (20, 120, 100, 30);
            button1.setBackground(Color.green);
            button1.addActionListener(this);
            this.getContentPane().add(button1);
            //Ende-Button
            JButton button2 = new JButton("Abrechen");
            button2.setBounds (20, 160, 100, 30);
            button2.setBackground(Color.red);
            button2.addActionListener(this);
            this.getContentPane().add(button2);
            //1. Eingabe Label
            JLabel eingabeLabel1 = new JLabel ("Suchen nach:");
            eingabeLabel1.setForeground (new Color(0,0,0));
            eingabeLabel1.setBounds (20, 20, 100, 20);
            this.getContentPane().add (eingabeLabel1);
            //1. Eingabe-Textfeld
            textFeldSuche = new JTextField (40);
            textFeldSuche.setText ("Bitte geben Sie einen Nachnamen ein.");
            textFeldSuche.setBounds (120, 40, 300, 30);
            textFeldSuche.setBackground(new Color(255,255,255));
            this.getContentPane().add (textFeldSuche);

            //Window-Listener
            addWindowListener(new WindowAdapter()
            {
                public void windowClosing(WindowEvent event)
                {
                    setVisible(false);
                    dispose();
                    System.exit(0);
                }
             });
     }


    public void actionPerformed(ActionEvent event)
    {
        String cmd = event.getActionCommand();
          if (cmd.equals("Suche"))
          {
               this.g1.setTextFuerTextfeldNachname("Hier text");
//               dieseListe.suche(textFeldSuche.getText());
//            if(dieseListe.isBehind() == false)
//            {
//                Eintrag getEintrag = (Eintrag)dieseListe.getItem();
//
//                AdressListe.Name.setText (getEintrag.getNachname());
//                AdressListe.textFeldVorname.setText (getEintrag.getVorname());
//                AdressListe.textFeldStraße.setText (getEintrag.getStraße());
//                AdressListe.textFeldHausNummer.setText (getEintrag.getHausNummer());
//                AdressListe.textFeldPlz.setText (getEintrag.getPlz());
//                AdressListe.textFeldOrt.setText (getEintrag.getOrt());
//                AdressListe.textFeldTelefonNummer.setText (getEintrag.getTelefonNummer());
//            }
//            else
//            {
//                String aktuellerSuchString=AdressListe.textFeldSuche.getText();
//                AdressListe.textFeldSuche.setText("Kein Eintrag für"+" "+"'"+aktuellerSuchString+"'"+" "+"vorhanden");
//                AdressListe.textFeldNachname.setText ("");
//                AdressListe.textFeldVorname.setText ("");
//                AdressListe.textFeldStraße.setText ("");
//                AdressListe.textFeldHausNummer.setText ("");
//                AdressListe.textFeldPlz.setText ("");
//                AdressListe.textFeldOrt.setText ("");
//                AdressListe.textFeldTelefonNummer.setText ("");
//            }
          

          }
          else if (cmd.equals("Abrechen"))
          {
            setVisible(false);
            dispose();
            //System.exit(0);    // sonst schließt ganze Anwendung
          }
          
     }
     

}

Code:
/
// Starter für ein Dialog-Programm.

class Starter
{
  // start attributes
  // end attributes

  // start methods
    public static void main(String[] args)
    {
        AdressListe wnd = new AdressListe();
        wnd.setSize(600,400);
        wnd.setVisible(true);
    }   
  // end methods
}

Hoffe das hilft weiter!....is keine gute Programmierung..halt für die Schule.
 
Hey,
hab genau das gleiche Problem was oben beschrieben wurde !

Hab allerdings auch ein Problem bekomm eine NullpointerException zurück wenn ich das in ein Try ... Catch packe.


Code:
// Laden der Klasse
public class left_panel extends javax.swing.JPanel  {

    private Hauptfenster var_hauptfenster;

    /** Creates new form left_panel */
    public left_panel () {
        initComponents();

    }

// Referenz auf das Hauptfenster
    public left_panel(Hauptfenster refHauptfenster) {
        this.var_hauptfenster = refHauptfenster;
     }

// Text ändern
private void textdetails_anzeigen(java.awt.event.ActionEvent evt) {                                        

    try {
       this.var_hauptfenster.setJLabel1text("Ich bin ein Text");
    } catch (Exception e) {
        System.out.print("Folgender fehler ist aufgetreten: ");
        System.out.println(e);
    }
}
 
Dank mehreren Stunden Intensivtraining mit Xandro
im tutorials.de IRC Channel hab ich, bzw. er das problem lösen können!
Vielen Dank dafür!
MfG dopeD
 
Moin,

mach doch nicht solche Werbung hier! :D
Am Ende kommen die noch alle mit Ihren Problemen in den IRC und löchern mich ;-)

Gruß,
Xan
 
Doch ich finde du bist ein sehr guter Lehrer... :D
*schleim*
AUFRUF: BEI FRAGEN GEHT ZU XANDRO(kleiner Scherz)...und haltet ihn wie ich vom einkaufen,film gucken oder schlafen ab ;)
lg und Danke nochmal!
dopeD
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück