Info zwischen verschiedene Klassen austauschen

freundchen

Neues Mitglied
Ein nettes Hallo allerseits,

ich habe bis dahin nur in C programmiert und bin in Sachen OOP ein Neuling und habe eine Frage:
Wie kann ich eine Zeichenkette (String) aus einem Textfeld einer anderen Klasse in Java bekommen?

Bspw. habe ich eine Benutzeroberfläche, wo ich Textfelder habe und ich will den Inhalt dieser Textfelder von einer anderen Klasse "lesen".

Sinn und Zweck ist die Erstellung einer doppelverkettete Liste: der Benutzer gibt Namen in einem Textfeld und durch einen Button werden die Namen im gleichen Visualisierungsfenster ausgegeben. Mit Felder habe ich das schon gelöst, würde das ganze aber durch Listen lösen wollen.

Die Struktur der Klassen würde so aussehen: Doppenliste (erzeugt neues Element) --> Element (erzeugt neues Inhalt) --> Inhalt

Bin für jede Hilfestellung sehr dankbar. Auf meiner Suche im Netz finde ich keinen Beispiel für Listen, die in einer Benutzeroberfläche realisiert wurden, sondern nur Ein-/Auslesen aus der Kosole....
Falls jemand einen ähnlichen Beispiel kennt, bitte ich um einen Link u.ö.

Vielen Dank nochmal.
 
G

Gast2

Gast
Hm also das ist schon etwas komplexer zu erklären.

1.) Datenzugriff immer über Getter Setter. Siehe dazu Datenkapselung
2.) Daten synchronisieren über Binding Lib oder MVC
3.) Sehr guter Einstieg in OOP mittels Java: Java von Kopf bis Fuß (50€) <-- Eins der besten Einsteigerbücher die ich kenne!

Entschuldige für die nicht so konkrete Antwort aber dein Vorschlag klingt konzeptionell etwas daneben. Doppelt verkettete Listen kommen imho nur intern in Implementierungen von Collections vor. So LowLevel musst du imho nicht programmieren.
 
Zuletzt bearbeitet von einem Moderator:
G

Gasssst

Gast
dein Vorschlag klingt konzeptionell etwas daneben. Doppelt verkettete Listen kommen imho nur intern in Implementierungen von Collections vor. So LowLevel musst du imho nicht programmieren.

Das ist mir eben schon in einem anderen Thread aufgestossen...
Wo siehst du ein Problem wenn jemand eine grundlegende Datenstrunktur implementieren will?
Wie hast du denn Programmieren gelernt, oder hast du selbst etwa noch nie simple Datenstrukturen oder Algorithmen ausprogrammiert?

Bezüglich der Frage: die Frage verstehe ich nicht. Zum einen gibt es im Prinzip keinen Unterschied ob die Oberfläche nun per Konsole oder per GUI realisiert ist. Wenn doch, dann fehlen irgendwo Grundlagen. So "komplex" ist das übrigens auch nicht. Informationen werden zwischen Objekte per Methodenaufrufen ausgetauscht - fertig.
 

freundchen

Neues Mitglied
erstmal vielen Dank für alle Antworten,

@ Final Striker: einen guten Ansatz für mich konnte ich durch deinen Link finden. Ich habe es auch so übernommen, bekomme auch keine Fehlermeldung, nur scheinbar Probleme, dass die Informationen an einer Stelle fehlen "Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException"

Zum Verständnis: ich will eine Gui erstellen (siehe Anhang), wo Namen in Textfeldern eingetragen werden können und im selben Gui als Labels ausgegeben werden. Dazu erzeuge ich eine doppelt verkettete Liste.

Der Code ist lang. Wichtig sind nur die fettmarkierten Stellen
Klasse 1 (Gui):

Java:
public class Gui extends Fenster_1
{
    protected JFrame fenster_1;
    protected Container c; 
    protected JButton button_1;
    protected JButton button_2;
    protected JLabel label_1 = new JLabel();
    protected JLabel label_2 = new JLabel();
    protected JLabel label_leer = new JLabel();
    Label[] kinder = new Label[11];
    public Label reim = new Label();
    [B]protected JTextField tf_1;[/B]    protected JTextField tf_2;
    private String name;



    private int x,y = 0;
    int i =0;   // Anzahl der Kinder (original)
    Font f1 = new Font("Serif",Font.BOLD,20);
    Font f4 = new Font("Serif",Font.BOLD,25);
    Color f2 = new Color(255,0,0);
    Color f3 = new Color(20,20,20);
    Color f5 = new Color(150,255,150);

    
    private static Element kopf;
    private static Element ende;
    private static Element aktuell;
   
    /**
     * Konstruktor für Gui
     */
    public void Gui() 
    
    {
        Initdliste();
              // Erzeuge ein Fenster-Objekt
        fenster_1 = new JFrame();
        fensterErzeugen("Kinderabzählreim ",fenster_1);
        //Bestimme die referenz auf den eigenen Container
        c = fenster_1.getContentPane();
        // Setze das Layout       
        c.setLayout(new FlowLayout(FlowLayout.LEFT));
        c.setBackground(f5);
        
        
        // Namen eintragen:
        label_1 = new JLabel("Dein Name: ");
        tf_1 = new JTextField(10);
        tf_1.setFont(f1);
        tf_1.setOpaque(true);
        label_1.setFont(f1);
        c.add(label_1);
        c.add(tf_1);  


        // Button für Hinzufügen eines Namens
        button_1 = new JButton("hinzufügen");
        button_1.setFont(f1);
        //button_1.setBounds(100, 400, 40, 20); wenn setLayout(null); ist
        c.add(button_1);
        // actionlistener reagiert auf eine aktion des nutzers
        ActionListener ac_lis = new MyListener();
        // zuweisen von ac_lis zu button 1
        button_1.addActionListener(ac_lis);
        
        // Abzählreim eintragen:

        label_2 = new JLabel("Abzählreim eingeben: ");
        tf_2 = new JTextField(40);
        tf_2.setFont(f1);
        tf_2.setOpaque(true);
        label_2.setFont(f1);
        c.add(label_2);
        c.add(tf_2);        
        
        // Button für die Animation vom eingegebenen Abzählreim
        button_2 = new JButton("Start");
        button_2.setFont(f1);
        c.add(button_2);
        label_leer = new JLabel("                                                                                                                                                                                               ");
        c.add(label_leer);
        ActionListener ac_lis2 = new MyListener2();
        button_2.addActionListener(ac_lis2);
        
        
        // Fenster sichtbar machen
       fenster_1.setLocation(200,100);
       fenster_1.setVisible(true);  
    }
    
    /**
     * Initialisieren der Liste // diese methode kann von außen nicht aufgerufen werden, da private
     */
    private void Initdliste()
    {
        kopf = null;
        ende = null;
        aktuell = null;
        i=0;
    }
    
       
     private void zeichneLabel()    // private: damit zugriff nur über der methode anzeige erfolgen wird
     {
      fenster_1.setLocation(200,100);
      fenster_1.setVisible(true);   

    }
    
   [B] // Methode, die den Text im Textfeld ausliest:
    // deshalb public, damit die klasse inhalt darauf zugreifen kann
    public String getTf1(){ 
        return tf_1.getText();        
    }[/B]    
// Methode zum "Reagieren" auf Klick auf Button Hinzufügen!
     
     
public class MyListener implements ActionListener   // Beim Betättigen von button_1 (hinzufügen von kinder) wird diese Methode ausgeführt
 {
     

  public void actionPerformed (ActionEvent e)
  {
      // die folgenden zeilen sind von der methode "fuegeEinNach" geholt worden.      
      Element akt;
// Kind erzeugen 
        akt = new Element();         // akt ist das neue element, das hinzugefügt wird
        
// Sonderfall erstes Element (Liste ist leer)        
        if (kopf == null)
        {
            kopf = akt;
            ende = akt;
            aktuell = akt;  // aktuell ist der zeiger, worauf es gerade gezeigt wird
        }
        else
 // allgmeiner Fall
         {
             akt.next = aktuell.next;   // vertauschen der nachfolger
             aktuell.next = akt;
 
 // Rueckwaetsverkettung
             akt.prev = aktuell;
             aktuell.next.prev = akt;
             
             aktuell = akt;
         }
// aktuelles Element ist letztes Element
        if (aktuell.next == null)
            ende = aktuell;
        
  }
  
 }

 public class MyListener2 implements ActionListener   // Beim Betättigen von button_2 (start der animation) wird diese Methode ausgeführt
 {
  public void actionPerformed (ActionEvent e)
  {
        if (aktuell != null)  
          aktuell.container.ausgabe();
  }
 }
  
}


Klasse 2:

Java:
public class Element
{
    protected Element next;
    protected Element prev;
    protected Inhalt container;
    
    /**
     * Konstruktor
     * 
     */
    public Element()
    {
        container = new Inhalt();
        next = null;
        prev = null;
    }

}

Klasse 3:

Java:
public class Inhalt

{
    [B]protected String nameKind;  // wird aus tf_1 von Klasse Gui geholt[/B]
    protected String reim;  // wird aus tf_2 geholt
    private Gui hilf;    // Hilfsvariable, um Namen zu merken
    
    /**
     * Konstruktor
     * 
     */
    public Inhalt()
    {
        [B]nameKind = new Gui().getTf1();  [/B]
    }

public void ausgabe()
    {
        System.out.println("\n"+"Elementname    : "+ nameKind);   // Testen: Ausgabe Konsole
    }



Ich bin mir sicher, dass meine Vorgehensweise schon ungeschickt ist. Der OOP-Ansatz ist schon ein ganz anderer. Hoffe, dass irgendwann einen Klick bei mir macht.

Bedanke mich im Vorraus für jede Antwort.

PS: ich stelle gerade fest, dass die Fettmarkierung im Java-Code nicht wirkt, da ist nur zu sehen.
 

Anhänge

  • gui.jpg
    gui.jpg
    30,3 KB · Aufrufe: 46
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Tom/S Button info Java Basics - Anfänger-Themen 2
P module-info findet zweites Paket nicht Java Basics - Anfänger-Themen 1
L Server pingt Client und fordert Info Java Basics - Anfänger-Themen 2
P info()-Methode mit Objektrückgabe: Konsolenausgabe möglich? Java Basics - Anfänger-Themen 8
J Programmieren nach API Info?! Java Basics - Anfänger-Themen 4
V info popup fürein JEditorPane Java Basics - Anfänger-Themen 2
kulturfenster Info-Feld erstellen Java Basics - Anfänger-Themen 2
I Info Hausaufgaben Java Basics - Anfänger-Themen 2
F [Hibernate] Debug INFO Einstellungen Java Basics - Anfänger-Themen 5
G Hilfe mit Info-Ha Java Basics - Anfänger-Themen 23
H Info von Webserver prüfen und per TrayIcon visualisieren Java Basics - Anfänger-Themen 4
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 9
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
S Unterschied zwischen Denkweisen Java Basics - Anfänger-Themen 13
O Klassen Zusammenspiel zwischen 2 Klassen Java Basics - Anfänger-Themen 1
Ras Unterschied zwischen parser xml and api xml Java Basics - Anfänger-Themen 7
X Was ist der Unterschied zwischen materialisierten und nichtmaterialisierten Attributen einer Klasse? Java Basics - Anfänger-Themen 1
F Abstand zwischen zwei Objekten berechnen wie? Java Basics - Anfänger-Themen 1
S Längster Pfad zwischen zwei Vertices in einem Graph Java Basics - Anfänger-Themen 3
U Erste Schritte nextGaussian zwischen zwei Werten Java Basics - Anfänger-Themen 19
jhCDtGVjcZGcfzug Was ist der Unterschied zwischen diesen Quellcodes? Java Basics - Anfänger-Themen 3
rafi072001 Assoziation zwischen Musiker und Label Java Basics - Anfänger-Themen 1
I Best Practice Saubere Verbindung zwischen API und Business Layer mit DTO's Java Basics - Anfänger-Themen 2
A Parametar übergabe zwischen Methoden Java Basics - Anfänger-Themen 26
W User zwischen Optionen wählen lassen Java Basics - Anfänger-Themen 1
I Differenz zwischen LocalDateTime Java Basics - Anfänger-Themen 4
Leo_1789 Differenz ausrechnen zwischen denn idealgewicht und denn echten Gewicht Java Basics - Anfänger-Themen 7
E Wie gebe ich alle Daten zwischen zwei Zeitpunkten aus? Java Basics - Anfänger-Themen 2
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 3
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
NeoLexx Zuweisungskompatibilität zwischen Vererbungsbeziehungen (Polymorphie) Java Basics - Anfänger-Themen 18
L Threads Synchronisierung zwischen threads Java Basics - Anfänger-Themen 4
N Berührung zwischen Rechtecken Java Basics - Anfänger-Themen 5
Y Unterschied zwischen WindowBuilder und herkömmlichen erstellen des GUI´s? Java Basics - Anfänger-Themen 9
J Wert zwischen JFrames übergeben Java Basics - Anfänger-Themen 2
U Worin besteht der Unterschied zwischen call by reference und call by value? Java Basics - Anfänger-Themen 14
E Unterschied zwischen new und import Java Basics - Anfänger-Themen 5
J Punkt auf,über,unter oder zwischen 2 Geraden Java Basics - Anfänger-Themen 14
A Kommunikation zwischen nebenläufigen Threads Java Basics - Anfänger-Themen 4
B Unterschied zwischen (List<T> a) und (T[] a) Java Basics - Anfänger-Themen 7
Dilara_K Abstand zwischen den Doppelwerten in einem Array herausfinden Java Basics - Anfänger-Themen 20
S Nach dem Herüberschieben eines Arrays zwischen 2 Frames öffnet sich das Frame nicht mehr Java Basics - Anfänger-Themen 12
D Zufallszahl zwischen 10 und 99? Java Basics - Anfänger-Themen 5
J Objektzugriff zwischen disjunkten Klassen Java Basics - Anfänger-Themen 1
L Den Winkel zwischen zwei Vektoren berechnen! Java Basics - Anfänger-Themen 2
A Methoden Unterscheid zwischen public und ohne Java Basics - Anfänger-Themen 9
X Input/Output Höchste Temperaturschwankung zwischen 2 Tagen Java Basics - Anfänger-Themen 2
Bluedaishi der Monat zwischen zwei Datumsangaben Java Basics - Anfänger-Themen 15
R Threads Pause zwischen zwei Schleifen Java Basics - Anfänger-Themen 1
Aprendiendo Unterschied zwischen Referenzvariable und Instanzvariable. Java Basics - Anfänger-Themen 2
N Unterschied zwischen Checked und Unchecked Exceptions Java Basics - Anfänger-Themen 12
S Parameterübergabe zwischen zwei Programme Java Basics - Anfänger-Themen 4
S Erste Schritte Zwischen zwei Punkten ein Minimumpkt./Maxima finden Java Basics - Anfänger-Themen 1
K Klassen Array zwischen Klassen übergeben Java Basics - Anfänger-Themen 2
Arif OOP Die Bindung zwischen einem äußeren und einem inneren Objekt Java Basics - Anfänger-Themen 2
schoenosrockos Unterschied zwischen Objekten und vererbungen Java Basics - Anfänger-Themen 1
S OOP Variablen zwischen mehreren Klassen Java Basics - Anfänger-Themen 11
H Klassen Konstruktor Parameter als Instanzvariablen zwischen speichern... Java Basics - Anfänger-Themen 11
F Klassen Kommunikation zwischen Klassen Java Basics - Anfänger-Themen 4
J Variablen Unterschied zwischen lokalen-, Instanz-, Klassenvariablen Java Basics - Anfänger-Themen 6
N Dauer zwischen zwei LocalDateTime Objekten berechnen? Java Basics - Anfänger-Themen 4
P Ungerade Zahlen ausgeben lassen zwischen Spannweite zweier eingegeben zahlen Java Basics - Anfänger-Themen 6
V Zufallswert zwischen zwei Zahlen a und b Java Basics - Anfänger-Themen 12
H Datentypen Tage zwischen zwei Datums berechnen Java Basics - Anfänger-Themen 4
M Variable zwischen Klassen übergeben Java Basics - Anfänger-Themen 5
A attach source: Zusammenhang zwischen JAR und .class/.java Dateien? Java Basics - Anfänger-Themen 2
L Unterschied zwischen Klassen - und Instanzvarbiablen Java Basics - Anfänger-Themen 1
F Vererbung von Attributen zwischen zwei Klassen Java Basics - Anfänger-Themen 6
F Referenzen zwischen Methoden Java Basics - Anfänger-Themen 5
B Distanz zwischen zwei Punkten Java Basics - Anfänger-Themen 4
D Suche nach der Anzahl von Zonen zwischen zwei Punkten Java Basics - Anfänger-Themen 2
G Zugriff zwischen Klassen Java Basics - Anfänger-Themen 15
S Funktion die mir fuer einen String eine Zahl zwischen 0.0 und 1.0 zurueckliefert..? Java Basics - Anfänger-Themen 9
S Unterschiede zwischen equals und contains Java Basics - Anfänger-Themen 2
S Leerzeichen zwischen zwei Zeichen im String entfernen Java Basics - Anfänger-Themen 19
N Werte zwischen Klassen austauschen Java Basics - Anfänger-Themen 1
M Unterschied zwischen Classpath eines Eclipse Projektes und dem CLASSPATH? Java Basics - Anfänger-Themen 3
Thallius Best Practice Events zwischen eigenen Klassen Java Basics - Anfänger-Themen 2
A if-Anweisung zwischen zwei Punkten Java Basics - Anfänger-Themen 1
S Erste Schritte TAB-Wechsel zwischen TextFields Java Basics - Anfänger-Themen 1
B Relativer Pfad zwischen zwei Files Java Basics - Anfänger-Themen 2
M Drag & Drop - Interaktion zwischen Java und dem OS Java Basics - Anfänger-Themen 1
S Erste Schritte Tage zwischen 2 Daten berechnen Java Basics - Anfänger-Themen 6
Z Differenz zwischen 2 Daten berechnen, ohne importiere Funktionen! Java Basics - Anfänger-Themen 10
A Datum zwischen zwei Daten berechnen und in Tagen anzeigen Java Basics - Anfänger-Themen 4
D Unterschied zwischen double und Double Java Basics - Anfänger-Themen 4
Q Unterschied zwischen static und keinem Modifier Java Basics - Anfänger-Themen 15
K Unterschied zwischen Jar, war und ear Dateien Java Basics - Anfänger-Themen 3
S Problem bei Kollision zwischen Array-objekten! Java Basics - Anfänger-Themen 2
M Länge der Strecke zwischen zwei Punkten Java Basics - Anfänger-Themen 10
T Unterschied zwischen Integrationstest und JUnit test? Java Basics - Anfänger-Themen 12
T zwischen den Strings soll ein plus(+) stehen Java Basics - Anfänger-Themen 5
S Methoden Tage zwischen 2 Daten Java Basics - Anfänger-Themen 19
M Typcasting zwischen ganzen Zahlen Java Basics - Anfänger-Themen 7
K Unterschied zwischen break und continue in einer Schleife Java Basics - Anfänger-Themen 14
A Exakte Unterschied zwischen Java EE und Java SE? Java Basics - Anfänger-Themen 4
J Unterschied zwischen statische und nicht statische Methoden? Java Basics - Anfänger-Themen 14
N Winckel zwischen zwei Punkten Java Basics - Anfänger-Themen 9
O Java unterschied zwischen Interface und Interface_Referenzen!!?? Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben