OOP GUI aus anderer Klasse updaten

TheMan

Mitglied
Guten Tag,

ich hoffe ihr könnt mir mit meinem kleinen Anliegen helfen. Und zwar arbeite ich zum ersten mal mit einer GUI in Java und bin nun auf ein Problem gestoßen, bei dem ich weiß wo der Fehler liegt, aber nicht wie ich in behebe.

Habe zwei Klassen
  • GUI Class
  • ScriptClass
Nun werden einzelne Schritte der ScriptClass durchlaufen und der aktuelle Status soll an die GUI in eine JTextArea eingetragen werden. Das Problem ist, das ich innerhalb der ScriptClass nicht auf die GUI Klasse zugreifen kann, da diese dann wieder den Kontruktor ausführt was zu folgendem Fehler führt.

Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at ScriptClass.<init>(ScriptClass.java:22)
at GUI_Class.<init>(GUI_Class.java:37)
at ScriptClass.<init>(ScriptClass.java:22)
at GUI_Class.<init>(GUI_Class.java:37)

Code-Beispiel
GuiCLass erstellt mit WindowBuilder und Eclipse
Java:
public class GUI_Class{

    JFrame GuiClass;

//------------------------------------------------------------------------------------------------------------------------------------------   
    /**
     * Launch the application.
     */
    public static void main(String[] args)
    {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    GUI_Class window = new GUI_Class();
                    window.GuiClass.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
//------------------------------------------------------------------------------------------------------------------------------------------    
      /**
      * Getter / Setter Function
      */
    public void setGUILog (String xMsg)
    {
        LogArea.append(xMsg + "\n");
    }

//----------------------------------------------------------------------------------------------------
    /**
     * Create the application.
     */

    public GUI_Class()
    {
        initialize();

        // Settings for File Chooser -> Logs
           openFileChooser = new JFileChooser();
           openFileChooser.setCurrentDirectory(new File("C:\\Sandboxes"));
           openFileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
       
        // Settings for File Chooser -> Logs
           openFileChooser2 = new JFileChooser();
           openFileChooser2.setCurrentDirectory(new File("C:\\Sandboxes"));
           openFileChooser2.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);      
    }

ScriptClass
Java:
public class ScriptClass{

 GUI_Class Gui = new GUI_Class ();   [B]<--- führt zu Fehler, da neuer Aufruf von init function[/B]

//Beispiel für euch
//Remove duplicated entries in array list
   void removeDuplicatedEntries(ArrayList<String> arrayList, ArrayList<String> sortList)
   {
       // Log Message
       LogWorker.setLogMsg("INFO", "Check duplicated entries and remove them");
       String xLog = LogWorker.getLogMsg();
       Gui.setGUILog(xLog);  [B]<--wollte dann mit der Set-Function arbeiten [/B]

       ....
   }
}

Ich hoffe ihr versteht mein blödes Problem, welches wahrscheinlich einfach zu lösen ist.

Kurz: Ich muss innherlab der Script Klasse auf die Set-Funktion der Gui zugreifen

Vielen dank im voraus
 
Zuletzt bearbeitet:

TheMan

Mitglied
Vielen Dank,

könntest du kurz aufzeigen wie die Object Übergabe der GUI_Class aussieht? Ich meine das heute schon vergeblich versucht zu haben :D

Das Prinzip des Model View Controller schaue ich mir bei Gelegenheit auch an
 

mrBrown

Super-Moderator
Mitarbeiter
könntest du kurz aufzeigen wie die Object Übergabe der GUI_Class aussieht? Ich meine das heute schon vergeblich versucht zu haben :D
Das ist etwas, was du aus dem Effeff beherrschen solltest, bevor du irgendwas mit GUI versuchst ;)

Irgendwo musst du einen Setter oder Konstruktor haben, der das entsprechende Objekt entgegen nimmt, und dem musst du das übergeben.
In deinem Code wird allerdings nirgends ein Objekt der ScriptClass erstellt, das ist sicher keine Absicht, oder?
 

TheMan

Mitglied
Wird in der GUI_Class erstellt, hatte das nur rausgenommen, weil es mir ja um den weg aus Script_Class zu GUI_Class geht

Ich hatte es folgendermaßen versucht

Die GUI/Main Klasse
Java:
public class GUI_Class{

    JFrame GuiClass;
    Script_Class mScript = new Script_Class();

//------------------------------------------------------------------------------------------------------------------------------------------  
      /**
      * Getter / Setter Function
      */
    public void setGUILog (String xMsg)
    {
        LogArea.append(xMsg + "\n");
    }
}


Die Script Klasse, die als Übergabe die GUI_Class bekommt, bzw. eine Referenz darauf.
Java:
class ScriptClass {
    private GUI_Class gui;

    public GUI_Class(GUI_Class gui) {
        this.gui = gui;
    }

        GUI_Class gui = new GUI_Class();
        ScriptClass test = new ScriptClass(gui);



//Remove duplicated entries in array list
   void removeDuplicatedEntries(ArrayList<String> arrayList, ArrayList<String> sortList)
   {
       // Log Message
       LogWorker.setLogMsg("INFO", "Check duplicated entries and remove them");
       String xLogMsg = LogWorker.getLogMsg();
       test.setGUILog(xLogMsg); 

       ....
   }

   //Methoden

Das hat aber meine ich auch nicht funktioniert, ich stehe irgendwo auf dem Schlauch wo ich was erstellen muss -_-

Ich glaube ein kleines Beispiel würde mir helfen oder eine kurze Änderung an dem von mir geposteten Code.

Ich danke dir
 

mrBrown

Super-Moderator
Mitarbeiter
Wird in der GUI_Class erstellt, hatte das nur rausgenommen, weil es mir ja um den weg aus Script_Class zu GUI_Class geht
Dafür sind beide Stellen relevant ;)

Das hat aber meine ich auch nicht funktioniert
Natürlich funktioniert das nicht.
In Gui_Class (guck dir mal bitte Konventionen zur Benennung von Klassen an) erstellst du ein Objekt von ScriptClass. In ScriptClass hast du einen Konstruktor für Gui_Class definiert, was so nicht mal kompiliert. Dann erstellst du in dem ScriptClass-Object ein weiteres Gut_Class-Objekt und noch ein neues ScriptClass-Object, dem du ein GUI_Class-Object übergibst, wofür es allerdings keinen Konstruktor gibt.

Ich glaube ein kleines Beispiel würde mir helfen oder eine kurze Änderung an dem von mir geposteten Code.
In Gui_Class:
Java:
ScriptClass mScript = new ScriptClass(this); //Hier erstellst du ein Script_Class-Object und übergibst dem das aktuelle Gui_Class-Objekt

In ScriptClass:
Java:
Gui_Class gui_Class; //eine Variabel vom Typ Gui_Class deklarieren

public ScriptClass(Gui_Class gui_Class) { //Konstruktor von ScriptClass, welcher ein Gui_Class-Objekt entgegen nimmt
    this.gui_Class = gui_Class; //dieses Gui_Class-Objekt wird der Variablen zugewiesen
}
 

TheMan

Mitglied
Oh wie dämlich von mir. Ich danke dir vielmals.

Habe mich gestern auch in das MVC Konzept eingelesen und werden wohl nun alles darauf umstellen.

Vielen Dank noch einmal :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Zugriff auf Control anderer Klasse Java Basics - Anfänger-Themen 5
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
J Fehler bei array aus anderer Klasse Java Basics - Anfänger-Themen 3
R TreeSet Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 8
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
KogoroMori21 Objektvariable anderer Klasse übernehmen, Getter/Setter Java Basics - Anfänger-Themen 11
M Klassen Methode in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
M Methode in anderer Klasse aufrufen Java Basics - Anfänger-Themen 5
B Mit methode Objekt aus anderer Klasse erstellen Java Basics - Anfänger-Themen 6
M Klassen Klasse aus anderer Klasse "aufrufen" Java Basics - Anfänger-Themen 2
S Java Array Länge aus anderer Klasse lesen Java Basics - Anfänger-Themen 1
I Eigenschaften von Position aus anderer Klasse übernehmen Java Basics - Anfänger-Themen 17
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
CptK Interface Klasse Frame (extends JFrame) aus anderer Klasse schließen Java Basics - Anfänger-Themen 7
A JButton in anderer Klasse bearbeiten. Java Basics - Anfänger-Themen 2
deatzi Wert aus anderer Klasse lesen Java Basics - Anfänger-Themen 7
J Methoden Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 12
S Eingabe in anderer Klasse verwenden Java Basics - Anfänger-Themen 3
F Interface JButton von anderer Klasse hinzufügen Java Basics - Anfänger-Themen 2
L Klassen Methode aus anderer Klasse Java Basics - Anfänger-Themen 13
M Klassen Methode aus anderer Klasse nicht aufrufbar Java Basics - Anfänger-Themen 11
J Button in anderer Klasse ändern Java Basics - Anfänger-Themen 3
E Referenzvariable in anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
E Klassen Referenzvariable in anderer Klasse aufrufen. Java Basics - Anfänger-Themen 1
M Neu instanzierte Klasse übernimmt Werte von anderer Instanz Java Basics - Anfänger-Themen 4
A Variablen In anderer Klasse auf Objekte von JFrame zugreifen Java Basics - Anfänger-Themen 1
magdaStone Logikproblem Umschalten von booleans in anderer Klasse Java Basics - Anfänger-Themen 0
F Methode anderer Klasse aufrufen Java Basics - Anfänger-Themen 1
K OOP Mit anderer Klasse auf JTextField zugreifen Java Basics - Anfänger-Themen 5
N Auf TextFeld aus anderer Klasse zugreifen ohne es zu übergeben Java Basics - Anfänger-Themen 3
P Aufruf Methode anderer Klasse Java Basics - Anfänger-Themen 5
G Variablen Verwendung von Variablen in anderer Klasse Java Basics - Anfänger-Themen 6
1 Arraylist in anderer Klasse aufrufen Java Basics - Anfänger-Themen 11
S Klassen Instanz anderer Klasse raus geben Java Basics - Anfänger-Themen 1
J KeyListener aus anderer Klasse bereitet Probleme Java Basics - Anfänger-Themen 1
B Klassen Auf Instanz anderer Klasse zugreifen Java Basics - Anfänger-Themen 1
D Methoden g.setColor funktioniert nicht bei Methodenaufruf in anderer Klasse Java Basics - Anfänger-Themen 1
B Liste in anderer Klasse aufrufen? Java Basics - Anfänger-Themen 3
F ArrayListen auf anderer Klasse implementieren Java Basics - Anfänger-Themen 4
I Rückgabewert einer Methode in anderer Klasse verwenden Java Basics - Anfänger-Themen 2
X Gwt DnD, Drag auf Droparea in anderer Klasse? Java Basics - Anfänger-Themen 0
N Problem mit Swing Textfeld und Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 6
T Vererbung Variable aus anderer Klasse verwenden Java Basics - Anfänger-Themen 8
M Dynamische Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 11
T [Erledigt] Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 0
R Hashmap in anderer Klasse nicht benutzbar Java Basics - Anfänger-Themen 1
Jackii Globale Variable aus anderer Klasse ändern... Java Basics - Anfänger-Themen 4
L Erste Schritte Methode aus anderer Klasse verwenden Java Basics - Anfänger-Themen 16
W Frame in anderer Klasse anzeigen lassen Java Basics - Anfänger-Themen 1
T Variable aus anderer Klasse Java Basics - Anfänger-Themen 3
G ArrayList in anderer Klasse verwenden Java Basics - Anfänger-Themen 31
C Timer aus anderer Klasse stoppen/starten Java Basics - Anfänger-Themen 3
Sogomn JLabel in anderer Klasse zum JFrame hinzufügen Java Basics - Anfänger-Themen 2
G Objekt wie Objekt anderer Klasse behandeln Java Basics - Anfänger-Themen 4
K Vererbung Variable aus anderer Klasse nutzen Java Basics - Anfänger-Themen 3
P Klassen JTextfield aus anderer Klasse herausfüllen Java Basics - Anfänger-Themen 12
G Klassen Richtig auf jTextArea aus anderer Klasse zugreifen? Java Basics - Anfänger-Themen 3
A Klassen Klasse in anderer Klasse aufrufen Java Basics - Anfänger-Themen 5
C Klassen Zugriff auf Objekt anderer Klasse Java Basics - Anfänger-Themen 8
J Button in extra Klasse festlegen und in anderer Klasse einfügen? Java Basics - Anfänger-Themen 3
J GUI Button Klasse in anderer Klasse einfügen Java Basics - Anfänger-Themen 3
G Methodenaufruf anderer Klasse Java Basics - Anfänger-Themen 18
J Threads Variablen Wert aus anderer Klasse auslesen Java Basics - Anfänger-Themen 4
A Array aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 9
N GUI aus anderer Klasse beziehen Java Basics - Anfänger-Themen 21
J Variablen Array aus anderer Klasse auslesen-Wie verhindert man eine NullPointerException? Java Basics - Anfänger-Themen 4
F Erste Schritte String von anderer Klasse auf TextArea von erster Klasse Java Basics - Anfänger-Themen 12
C Problem mit Zugriff auf Variable bzw. get-Methode in anderer Klasse Java Basics - Anfänger-Themen 2
A String aus anderer Klasse in JTextArea einfügen Java Basics - Anfänger-Themen 7
A Methode aus anderer Klasse Java Basics - Anfänger-Themen 5
M AWT Applet - Button aus anderer Klasse abfragen Java Basics - Anfänger-Themen 4
J "public int x" - Zugriff von anderer Klasse (selbes Package) nicht möglich?! Java Basics - Anfänger-Themen 4
A Bild erstellen in anderer Klasse Java Basics - Anfänger-Themen 2
X OOP Methoden und Variablen in anderer Klasse verwenden Java Basics - Anfänger-Themen 5
I Konstruktor in anderer Klasse nutzen Java Basics - Anfänger-Themen 11
U Factory in anderer Klasse Java Basics - Anfänger-Themen 2
I Collections Arraylist in anderer Klasse aufrufen Java Basics - Anfänger-Themen 6
H Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 7
S KeyListener aus anderer Klasse hinzufügen Java Basics - Anfänger-Themen 19
c_sidi90 Zugriff auf Swingkomponente aus anderer Klasse Java Basics - Anfänger-Themen 12
S Event aus anderer Klasse als Auslöser Java Basics - Anfänger-Themen 5
C Objekt X über Methode aus anderer Klasse verändert Java Basics - Anfänger-Themen 3
I auf Textfeld aus anderer Klasse heraus zugreifen Java Basics - Anfänger-Themen 2
L Methodenaufruf aus anderer Klasse Java Basics - Anfänger-Themen 5
I Von einer Methode eines Objektes auf Attribut eines Objektes anderer Klasse zugreifen Java Basics - Anfänger-Themen 4
S Main-Methode aus anderer Klasse heraus starten Java Basics - Anfänger-Themen 8
E ActionListener in anderer Klasse erkennen Java Basics - Anfänger-Themen 13
S Zugriff auf Methode anderer Klasse Java Basics - Anfänger-Themen 6
F Tabelle in anderer Klasse füllen Java Basics - Anfänger-Themen 9
B Wert einer String Variable an andere String Variable in anderer Klasse uebergeben Java Basics - Anfänger-Themen 5
T Datentypen boolean von anderer klasse in hauptklasse übertragen Java Basics - Anfänger-Themen 2
A drawImage auf JFrame in anderer Klasse Java Basics - Anfänger-Themen 4
J Auf ActionEvents in "anderer" Klasse reagieren Java Basics - Anfänger-Themen 2
U Anderer Klasse ein Obejkt einer Klasse übergeben Java Basics - Anfänger-Themen 5
M LinkedList in anderer Klasse nutzen Java Basics - Anfänger-Themen 4
M Probleme beim Aufruf von Listener in anderer Klasse Java Basics - Anfänger-Themen 9
R Textlabel aus anderer Klasse ansprechen - Konstruktor notwendig? Java Basics - Anfänger-Themen 7
T Aufrufen von get-Methode aus anderer Klasse (absolute Anfängerfrage) Java Basics - Anfänger-Themen 2
K CheckBox aus anderer Klasse Java Basics - Anfänger-Themen 3
G Variable welche in anderer Klasse liegt, verändern. Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben