Von einer untergeordneten Klasse auf die Variablen der Main zugreifen

Iolinar

Grünschnabel
Moin,
ich stehe jetzt schon seit einigen Stunden vor einem Problem...
Ich habe eine Project erstellt (Eclipse) darin Enthalten sind zur Zeit 3 Klassen:
Code, GUI, Handler

GUI und Handler bilden für sich jeweils ein package

mein Verzeichnisbaum sieht wie folgt aus:

workspace/src -> hier liegt code.java
workspace/src/GUI -> hier liegt GUI.java
workspace/src/Handling -> hier liegt Handler.java

mein Problem ist, dass ich nach einigen Aufrufen und Berechnungen von Handler der über einen actionListener aufgerufen wird Zugriff auf einige Variabelen von "Code" brauche.

ich gurke schonseit Stunden im Forum/google rum komme aber zu keinem lauffähigem lösungsansatz

am angenehmsten wäre mir ein Object code mit dem ich auf die Variablen zugreifen kann

z.b.:


Object code = new code();
Code.var1 = 1337;

so ein Objekt lässt sich leider nicht erstellen!
Ist das überhaupt möglich? (neusetzten classpath? classloader?)



wäre froh über jede Hilfe, denkanstöße. :(

MfG
Iolinar
 
Hi,
du kannst doch das Code Object an den Handler übergeben. Der Handler greift dann via Get- & Set-Methoden auf die jeweiligen Variablen zu.

Grüße

Fabio
 
Nun ... wenn du dich mal etwas an Konventionen halten würdest , z.B. Klassenamen CapitalCamelCase und Variablennamen lowerCamelCase dann würde folgende Zeile auch funktionieren :
Java:
Code code=new Code();
Dass es so wie du es geschrieben hast NICHT hinhaut sieht man schon beim puren Lesen :
Java:
Object code=new code();
Du kannst einer Variable nicht den Namen einer Klasse zuweisen.
Auch die Zeile dadrunter ist *bei richtigen Konventionen* totaler Mist :
Java:
Code.var1=1337;
Damit würdest du also einer Instanz-Variable *die man im übrigen UPPER_CASE schreibt* einen Wert zuweisen ohne das die Klasse überhaupt initialisiert ist.

Vielleicht solltest du dir erstmal die Grundlagen dazu angucken : JavaInsel 9
Sowie die Konventionen : Java Naming Conventions

Dann dürften sich einige deiner Probleme von selbst lösen.
 
@ Hey Fabio!
Du meinst also beim aufruf durch denn acctionListener ein "this" aus der main (Code) übergeben?
Wie fange ich das am geschicktesten im Handler auf?

@ Spike

klar versuche ich mich -sogut ich kann- an die Konventionen zu halten, falls es mir mal nicht gelingt/völlig falsch liege
bitte ich das zu entschuldigen bzw. mich zu berichtigen. Ich gehe davon aus, dass jeder der eine Neue Sprache (egal welche) lernt am Anfang seine Probleme mit der Syntax hat...

Btw. die zeilen waren nicht aus meiner IDE gezogen sondern sinngemäß übertragen um mein Problem zu verdeutlichen....

Thx to all! Morgen um 0800 werde ich das ganze durchtesten, für weitere forschläge bin ich natürlich offen!:p
 
Das Problem an solchen "sinngemäßen" Codes ist das man sehr leicht auf andere Fehler schließen kann *wie ich z.B.* ... daher solltest du dich auch hier an die Konventionen halten und wenn möglich immer den Teil "der nicht funktioniert" mit einer genauen Fehlermeldung "was nicht funktioniert" Posten damit man die echten Fehler finden kann. Wenn du hier solchen falschen Code postest wundere dich nicht wenn du Antworten wie meine zu hören bekommst da es so nicht funktioniert.
 
Dasmein Problem ist ja nicht, dass ich einen Compiler Fehler bekomme sonder keinen weg kenne den Zugriff zu realisieren...
Um mal zum Thema zurück zukommen... Ich suche eine Möglichkeit um von einer in einem package enthaltenen klasse auf variablen in meiner "Hauptklasse" zuzugreifen lesen/schreiben.
mfg Iolinar
 
Hi

Fabio hat dir doch schon einen Hinweis gegeben:
Bevor überhaupt irgendein Actionhandler ausgeführt wird gibst du aus der Hauptklasse eine Referenz auf die Hauptklasse oder die benötigten Variablen zur Unterklasse, die das in sich speichert.

Gruß
 
Hey! Bin ja auch sehr froh über die Idee! Werd morgen auch direkt versuchen, dass so umzusetzten! Werde auch meine Ergebnisse Posten (hoffentlich mit richtigen Konventionen ;) )
 
Morgen!
Und wieder häng ich an meinem Problem....


Ich Versuche nun in Meiner Hauptklasse eine Object zu mit der referenz auf sich selbst zu erzeugen

Java:
 public static Object me = this;
-> Cannot use this in a static context

wenn ich me allerdings nicht static setze meckert meine main beim der übergabe

-> Cannot make a static reference to the non-static field me

wie komm ich denn da drum rum?
 
Hi,
da eine static Variable Klassengebunden und nicht Objektgebunden ist, musst du eine static Variable im Konstruktor definieren.
Sprich:
Java:
private static Object me;

public Konstruktor() {
   me = this;
}

Grüße

Fabio
 

Neue Beiträge

Zurück