Objekt- Variablen

Status
Nicht offen für weitere Antworten.

PollerJava

Top Contributor
Hallo,


ich erzeuge ein Objekt einer Klasse aus einer anderen Klasse,

Jetzt möchte ich aus dem Objekt der Klasse auf eine Methode einer anderen Klasse aus zugreifen, daher habe ich in meiner Klasse 2 Konstruktoren:



Code:
private static MyFrame myFrame;

    public MyButton()                         // in diesem Objekt würde ich myFrame benötigen, bei der Erzeugung kann ich      
                                                        // aber myFrame nicht mitgeben, da diese Objekt in einer anderen Klasse erzeugt 
                                                        // wird, welche die Variable myFrame nicht besitzt/kennt
	{
         ...
        }

public MyButton(MyFrame myFrame)
        {
        this.myFrame = myFrame;
        }  


// in der anderen Klasse MyFrame:

private MyButton myButton = new MyButton(this);


Wie kann ich es machen, dass ich die Variable myFrame nicht static machen muss und trotzdem vom Objekt (ohne Parameter) auf die Variable myFrame zugreifen kann?

Vielen Dank,

lg
 

The_S

Top Contributor
myFrame muss doch nicht static sein. Warum sollte myFrame denn static sein? Mal ganz davon abgesehen, dass (designtechnisch) ein Button nicht seinen Container bzw. sein Fenster kennen sollte.
 

PollerJava

Top Contributor
wenn ich 2 Objekte habe und auf eine Variable ausserhalb des Objektes zugreifen will (von einem anderen Objekt bzw einer Klassenvariable) dann muss myFrame static sein sonst bekomme ich eine NPE.
 

PollerJava

Top Contributor
Code:
// Button Klasse:

private static JTreeFrame treeFrame;

    public MyButton(JTreeFrame treeFrame)        
        {
        this.treeFrame = treeFrame;
        }   
    public MyButton()                
	{
	datenSpeicher.attach(new Observer()
	    {  
            public void update(Subject subject, int[] x)
	    }); 
	}

public void generateButton()
	{
	// button erzeugen, actionListener hinzufügen
	}
    
public void actionPerformed(ActionEvent evt) 
	{	
        treeFrame.openSelectedDocument(null, bildWechselIndex);      // hie brauche ich eben die Variable treeFrame        
	}

// Control Klasse:
button = new MyButton();
button.generateButton();
 
S

SlaterB

Gast
was genau funktioniert nicht (mehr), wenn du die Buchstaben s t a t i und c entfernst,
muss man alles einzeln nachfragen?

merkwürdig ist der zweite Konstruktor
public MyButton()
{
datenSpeicher.attach(new Observer()
{
public void update(Subject subject, int[] x)
});
}

wieso wird da das JFrame nicht übergeben, dann kann es ja wirklich nicht funktionieren,
ein Button ohne JFrame funktioniert in deinen Design nicht
 

The_S

Top Contributor
Der Code bringt mir mal überhaupt gar nichts. Er macht mir weder die Struktur der Klasse klar, noch wo das eigentliche Problem liegt. Aber extra für dich ein kleines KSKB:

Code:
public class MyFrame {

	private MyButton mybutton = null;
	
	public MyFrame() {
		
		mybutton = new MyButton(this);
	}
	
	public void doSomething() {
		System.out.println("mop");
	}
	
	public static void main(String[] args) {
		new MyFrame();
	}
}

Code:
public class MyButton {

	private MyFrame myframe = null;
	
	public MyButton(MyFrame myframe) {
		
		this.myframe = myframe;
		this.myframe.doSomething();
	}
}
 

Marco13

Top Contributor
Der Button sollte seinen Frame nicht kennen. Stattdessen sollte der Frame ein ActionListener SEIN oder einen ActionListener bereitstellen, der die gewünschte Funktion ausführt. Der wird dann an den Button gehängt.
 

The_S

Top Contributor
Marco13 hat gesagt.:
Der Button sollte seinen Frame nicht kennen. Stattdessen sollte der Frame ein ActionListener SEIN oder einen ActionListener bereitstellen, der die gewünschte Funktion ausführt. Der wird dann an den Button gehängt.

Das Thema hatten wir schonmal irgendwo mit Poller ... die mögen sich irgendwie net so ;) .
 

PollerJava

Top Contributor
Das kenn ich natürlich zur genüge MVC (Model, View Control) aber es ging in diesem Fall nicht anders, sonst ist meine Logic von der GUI komplett getrennt, die Logic cann man bei mir durch das Stragery- Muster problemlos austauschen,

Vielen Dank für Eure Hilfe,

lg
 

PollerJava

Top Contributor
Ah, jetzt versteh ich die Missverständnisse;

Ich habe 3 Klassen:

MyButton
MyFrame
MyControl

In der Klasse MyControl wird der Konstruktor der Klasse MyButton aufgerufen (also ein Objetk der Klasse MyButton wird erzeugt),
Ich brauche aber in der Klasse MyButton (bzw. im erzeugten Objekt von MyButton) auch eine Instanzvariable auf MyFrame, deshalb habe ich bis jetzt einen 2ten Konstruktor in MyButton gehabt, dort eine Instanz auf MyFrame übergeben und damit ich vom ersten erzeugten Objekt auf die Instanz der Klasse MyFrame zugreifen habe können, musste ich die Instanz auf MyFrame static machen,

Meine Frage wäre jetzt gewesen, wie ich es machen kann, dass ich vom ersten erzeugten Objekt auch die Instanzvariable von MyFrame zugreifen kann ohne das ich diese static mache?


lg
 

PollerJava

Top Contributor
ja das problem ist aber, dass ich den JButton erzeuge (Da kann ich noch keine Referenz an MyFrame übergeben) und erst später eine Referenz von MyFrame an MyButton übergeben kann, da ein Objekt von MyFrame erst später erzeugt wird,
gibts da eine Lösung oder muss ich da bei meiner statischen Referenzvariable bleiben,
 
S

SlaterB

Gast
was machst du denn mit dem Button solange, wenn es noch kein JFrame gibt? ;)
da würde ich erstmal gehörig über diese von deinen anscheindend zahlreichen Design-Katastrophen nachdenken

und selbst wenn, einfach später setJFrame(this); aufrufen
 

PollerJava

Top Contributor
naja Design-Katastrophen würd ich nicht sagen, ich habe ein JTabbedPane und erzeuge verschiedenen JPanels für dieses, dann mache ich einen JFrame und übergebe diesem das JTabbedPane :wink:
 
S

SlaterB

Gast
siehste, Katastrophe ;)

einfache Lösung:
erst JFrame erstellen, dann JTabbedPane,
fertig
 

PollerJava

Top Contributor
ja, das hab ich eh so, mir ist durchaus bewusst, wie man ein Java- Programm designt, MVC, jede Klasse nur eine Verantwortlichkeit, jeder Objekt soll nur mit den engsten Freunden kommunizieren usw, das ist mir schon klar,
ich würde mein Programm keinesfalls als Katastrophe sehen, ist verbesserungswürdig, da mein Design im laufe der Projektarbeit immer wieder verändert werden musste (Projektziel war nicht von Anfang an Klar) aber es funktioniert bis auf wenige Dinge sehr gut,

lg
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Lwjgl 3d Objekt wird schmaler, wenn es sich dreht Allgemeine Java-Themen 0
B Ein Objekt einer Klasse mehreren anderen Klassen zur Verfügung stellen? Allgemeine Java-Themen 6
T Objekt Array Aufgabe mit Busdatenbank Allgemeine Java-Themen 2
Maxi-JOO Klassen Dummy Objekt in anderen Constructor übergeben Allgemeine Java-Themen 5
el_niiinho13 Objekt auf der Konsole ausgeben lassen Allgemeine Java-Themen 8
d.lumpi Aus Einer Klasse auf ein Objekt einer anderen Klasse Zugreifen Allgemeine Java-Themen 1
A Objekt aus anderen Objekten machen Allgemeine Java-Themen 8
SaftigMelo In einem Winkel Objekt bewegen Allgemeine Java-Themen 2
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
H Objekt speichern und laden Allgemeine Java-Themen 1
H Objekt speichern und laden Allgemeine Java-Themen 1
J Objekt in Bytestream umwandeln Allgemeine Java-Themen 12
J Wie kann ich von Vornherrein einen Fokus auf ein Objekt entfernen? Allgemeine Java-Themen 3
J Information von getSource() Objekt auslesen Allgemeine Java-Themen 1
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
S Variable als Objekt Name Allgemeine Java-Themen 3
D Input/Output Zwischen zwei ID-Räumen unterscheiden und Objekt löschen Allgemeine Java-Themen 16
L Objekt aus Objekt-array "löschen" Allgemeine Java-Themen 2
T Objekt mit String und Int aus TxT Datei erstellen Allgemeine Java-Themen 23
T Objekt in Array packen Allgemeine Java-Themen 6
K Methodenaufruf mit String / String zu Objekt konvertieren Allgemeine Java-Themen 8
S Neues Objekt darstellen Allgemeine Java-Themen 4
J Best Practice Objekt an alle Klassen verteilen ( Discord Bot ) Allgemeine Java-Themen 7
D Objekt-Suche mit mehreren optionalen Parametern Allgemeine Java-Themen 6
M Klassen Objekt weiter geben Allgemeine Java-Themen 1
B Klassen Objekt erzeugen und Konstruktor aufrufen - Welche Lösung ist besser? Allgemeine Java-Themen 2
L Variablen Eigenes Objekt wie z.B. einen Integer zuweisen Allgemeine Java-Themen 3
D Konstruktor - jedes Objekt einzeln erzeugen - alternative? Allgemeine Java-Themen 8
S Applet Überprüfen ob ein Objekt angeklickt wurde Allgemeine Java-Themen 2
RalleYTN 3D Objekt Translation basierend auf Rotation (Probleme mit Z Rotation) Allgemeine Java-Themen 0
B Von String zu <Objekt> ||Speichern/Laden Allgemeine Java-Themen 17
G Neues Objekt aus List<JsonObject> mit Stream Allgemeine Java-Themen 4
P Threads Objekt im Konstruktor anders wie im Run()-Block Allgemeine Java-Themen 10
R Objekt funktioniert nicht auf iOS Allgemeine Java-Themen 15
K Textdatei als Objekt Allgemeine Java-Themen 4
Viktim Classenname zu Objekt Allgemeine Java-Themen 4
P Entity Objekt Methoden vs Service methoden Allgemeine Java-Themen 2
D Datentypen Klassenattribut aus Objekt in generischer Liste Allgemeine Java-Themen 15
O Klassen Bruch im gleichen Objekt Speichern Allgemeine Java-Themen 1
P Liste zu Objekt umwandeln Allgemeine Java-Themen 4
C Liste checken auf MINDESTENS ein Objekt | Bukkit Allgemeine Java-Themen 3
K Best Practice JFrame Objekt allgemein zugänglich machen Allgemeine Java-Themen 8
B ArrayList in ein Objekt legen Allgemeine Java-Themen 1
D Objekt entlang eines Funktionsgraphens bewegen Allgemeine Java-Themen 6
M Objekt serialisieren/deserialisieren und in einer SQLite-Datenbank speichern Allgemeine Java-Themen 3
D Java Objekt als Service in Runtime registrieren Allgemeine Java-Themen 1
S Interaktion mit einer website (website als Objekt?) Allgemeine Java-Themen 3
J OOP Überwachen, ob ein Objekt erzeugt wird Allgemeine Java-Themen 9
S Byte Array welches in Laufzeit aufgelöst wird // Objekt Array Allgemeine Java-Themen 3
Thallius Hash über serialisiertes Objekt? Allgemeine Java-Themen 3
Developer_X Input/Output Serialisiertes Objekt speichern und laden Allgemeine Java-Themen 1
C Generics Objekt in ArrayList Allgemeine Java-Themen 2
L Klassen Konstruktor soll Objekt anderer Klasse erzeugen Allgemeine Java-Themen 2
F Neues Objekt aus .CSV definition Allgemeine Java-Themen 3
K Methoden Objekt wird nicht erkannt Allgemeine Java-Themen 11
P Objekt mit verschiedenen Datentypen Allgemeine Java-Themen 5
T Objekt kontaktiert seinen "erzeuger" Allgemeine Java-Themen 5
S Objekt orientierte Programmierung Allgemeine Java-Themen 7
C Objekt Datenverlust nach Methodenaufruf Allgemeine Java-Themen 9
H JavaFX Von einer Methode auf stage-Objekt zugreifen Allgemeine Java-Themen 3
T WeakReference/PhantomReference: Mitbekommen WELCHES Objekt nun GC'ed wird Allgemeine Java-Themen 2
T Class-Objekt mit URLClassloader Allgemeine Java-Themen 7
P Konsoleneingabe übernehmen und Objekt instanzieren. Allgemeine Java-Themen 5
E Auf Java-Objekt aus anderer Instanz zugreifen Allgemeine Java-Themen 26
L Klassen Polymorphie:2 Attribute gleichen Namens in einem Objekt Allgemeine Java-Themen 6
P Objekt Array in Datei Speichern Allgemeine Java-Themen 3
F Dynamisch ein Objekt einer bestimmten Subklasse erstellen Allgemeine Java-Themen 7
D Player Objekt - Frame über Server anzeigen lassen. Allgemeine Java-Themen 3
V Objekt löschen Allgemeine Java-Themen 7
A OOP Wie auf Objekt der Superklasse zugreifen? Allgemeine Java-Themen 6
S Datei in File-Objekt mit UTF-8 einlesen Allgemeine Java-Themen 2
M neues Objekt speichern, nicht Referenz Allgemeine Java-Themen 10
B synchronisierter zugriff auf Objekt Allgemeine Java-Themen 6
F Objekt einer Datei verschieben, aber Verzeichnispfad fehlt Allgemeine Java-Themen 6
C Objekt Typ herausfinden Allgemeine Java-Themen 5
E Objekt beim Erzeugen in ArrayList Allgemeine Java-Themen 9
M Objekt prüfen auf null ->Invocation Target Exception??? Allgemeine Java-Themen 2
M Objekt aus Liste in Liste suchen/löschen Allgemeine Java-Themen 6
D Eigenen Objekt Pool Allgemeine Java-Themen 15
C blueJ: Objekt wird nicht in Objektleiste angezeigt Allgemeine Java-Themen 8
T Objekt 2x deserialisieren, aber nur 1x im Heap haben? Allgemeine Java-Themen 4
sambalmueslie Benachrichtigung bei neuer Objekt-Instanz Allgemeine Java-Themen 5
U Konstante in Objekt definieren Allgemeine Java-Themen 6
D this mit Objekt überschreiben Allgemeine Java-Themen 17
R Synchronized - auf welchem Objekt Allgemeine Java-Themen 16
E Objekt erstellen Allgemeine Java-Themen 7
M Timer von nicht existiertem Objekt stopen Allgemeine Java-Themen 5
M Swing-Frontend abhängig von ausgewähltem Objekt Allgemeine Java-Themen 4
J Lebt das Objekt noch?? Allgemeine Java-Themen 12
K Objekt einer konkreten Implementierung eines Interfaces durch übergebenen String Allgemeine Java-Themen 2
K Objekt-Austausch zwischen zwei Programmen über System-Clipboard Allgemeine Java-Themen 5
S Performance Frage: Objekt oder static? Allgemeine Java-Themen 33
B Speicherverbrauch Objekt-Referenz Allgemeine Java-Themen 11
D Browser-Objekt erzeugen Allgemeine Java-Themen 8
B FileWriter / FileReader testen / Mock-Objekt für Unit Tests? Allgemeine Java-Themen 6
A Iterationen einer XML-Datei in einem Objekt sichern Allgemeine Java-Themen 5
R Objekt zur Laufzeit zerstören? Allgemeine Java-Themen 12
hdi Frage zur Objekt Initialisierung Allgemeine Java-Themen 4
X Prozess-Objekt nach Ausführung der destroy-Methode null oder nicht null ? Allgemeine Java-Themen 10
T Serialisiertes Objekt über Socket nachladen Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben