Zugriff auf Variablen aus anderer Klasse

Status
Nicht offen für weitere Antworten.

muemmel_0811

Bekanntes Mitglied
Hi zusammen,

ich weiß, das Thema wurde schon öfter besprochen, aber trotzdem kapier ich's nicht...
Ich hab eine Klasse InPanel1.java und eine Klasse Funktionen.java. Nun gibt es in der Klasse InPanel1 eine Variable (bisher nur ein Test-String, später soll es aber eine HashMap sein), auf die ich von der Klasse Funktionen lesend, wie auch schreibend gerne zugreifen können möchte. Und was soll ich sagen, ich scheiter schon am lesen des Strings :(.
InPanel1.java
Code:
public class InPanel1 extends JPanel {
Weiss white = new Weiss();
JButton eins1 = new JButton("Hallo");
Funktionen varFunkt = new Funktionen();
JRadioButton ohne = new JRadioButton("ohne",true);
JRadioButton mit = new JRadioButton("mit",false);
ButtonGroup auswahl = new ButtonGroup();
String wort = "abc";

Funktionen.Koord fct = varFunkt.new Koord();

InPanel1() {
setLayout(new BorderLayout());
add(white, BorderLayout.CENTER);
add(eins1, BorderLayout.NORTH);
add(ohne, BorderLayout.WEST);
add(mit, BorderLayout.EAST);
auswahl.add(ohne);
auswahl.add(mit);
}
public class Weiss extends JPanel {
Weiss() {
setLayout(null);
setBackground(new Color(255,255,255));
addMouseListener(new Maus());
}
}
public class Maus extends MouseAdapter {
public void mousePressed(MouseEvent me) {
fct.check();
}
}
}
Funktionen.java
Code:
public class Funktionen {
InPanel1 p1 = new InPanel1();
Funktionen() {
}
public class Koord {
Koord() {
}
void check() {
System.out.println(p1.wort);
}
}
}

Wenn ich diesen Code ausführen will, dann hagelt es leider nur folgendes:
Exception in thread "main" java.lang.StackOverflowError
at java.util.Hashtable.get(Hashtable.java:336)
at javax.swing.UIDefaults.getFromHashtable(UIDefaults.java:140)
at javax.swing.UIDefaults.get(UIDefaults.java:128)
at javax.swing.MultiUIDefaults.get(MultiUIDefaults.java:37)
at javax.swing.UIDefaults.getColor(UIDefaults.java:378)
at javax.swing.UIManager.getColor(UIManager.java:590)
at javax.swing.LookAndFeel.installColors(LookAndFeel.java:58)
at javax.swing.LookAndFeel.installColorsAndFont(LookAndFeel.java:92)
at javax.swing.plaf.basic.BasicPanelUI.installDefaults(BasicPanelUI.java:49)
at javax.swing.plaf.basic.BasicPanelUI.installUI(BasicPanelUI.java:39)
at javax.swing.JComponent.setUI(JComponent.java:650)
at javax.swing.JPanel.setUI(JPanel.java:131)
at javax.swing.JPanel.updateUI(JPanel.java:104)
at javax.swing.JPanel.(JPanel.java:64)
at javax.swing.JPanel.(JPanel.java:87)
at javax.swing.JPanel.(JPanel.java:95)
at InPanel1$Weiss.(InPanel1.java:32)
at InPanel1.(InPanel1.java:8)
at Funktionen.(Funktionen.java:8)
at InPanel1.(InPanel1.java:10)
at Funktionen.(Funktionen.java:8)
at InPanel1.(InPanel1.java:10)
at Funktionen.(Funktionen.java:8)
at InPanel1.(InPanel1.java:10)...
(ab hier immer wieder die gleichen beiden Zeilen)


Was mache ich hier falsch?

Die beiden javas da oben sind nur eine kleine Testumgebung, denn eigentlich hab ich eine java mit der main-class, 4 weitere javas mit 4 verschiedenen Tabs und eben so eine Funktionen.java.
In jedem dieser 4 Tabs kann der User prinzipiell erst mal das gleiche machen, jedoch unterscheiden sich diese 4 Tabs durch den GUI-Aufbau und ein paar Parametern, die vom User abhängig (Maus-Aktionen) sind.
Und damit ich nicht 4 mal bspw. das gleiche if-else-Konstrukt schreiben muss, hab ich mir gedacht, ich pack das if-else-Konstrukt in eine separate .java und greif dann von den 4 Tabs aus darauf zu. Nur reicht es eben nicht nur auf die Funktionen.java zugreifen zu können (der Aufruf aus der InPanel1 klappt ja), sondern ich muss dann eben auch von der Funktionen.java wieder auf die Tab-abhängigen-Variablen lesend und schreibend zugreifen können - wie in diesem kleinen Beispiel eben auf diesen String.

Kann mir von Euch jemand helfen?

Grüße,
muemmel
 
S

SlaterB

Gast
falsch:
Code:
Objekt A erzeugt sich ein Objekt B
                 Objekt B erzeugt sich ein Objekt A
                           Objekt A erzeugt sich ein Objekt B
                                     Objekt B erzeugt sich ein Objekt A ..........

richtig:

Code:
Objekt A erzeugt sich ein Objekt B und übergibt diesem 
  sich selbst als Parameter im Konstruktor (oder sonst irgendwie)
                 Objekt B hat nun sein A und freut sich
 

muemmel_0811

Bekanntes Mitglied
Hi SlaterB,

Danke erstmal für die Erklärung - ist ja auch logisch.
Könntest Du mir die Theorie aber auch an Hand meines Beispiel-Codes erklären?
Ich hab noch nicht allzu viel mit Java gemacht und bin daher für jedes Beispiel dankbar.

Grüße,
muemmel
 

Leroy42

Top Contributor
Code:
class A {
  B b = new B(this);
}

class B {
  A meinA;

  B(A einA) {meinA = einA;}
}
 
S

SlaterB

Gast
allgemeiner Tipp
und mit solchen simplen Klassen übt man sowas, nicht in komplexen GUIs ;)

add(white, BorderLayout.CENTER);
add(eins1, BorderLayout.NORTH);
add(ohne, BorderLayout.WEST);
add(mit, BorderLayout.EAST);

schreiben aber die Grundlagen nicht verstehen..
 
S

SlaterB

Gast
das passt sich auf jedem Level an,

ganz unten sollte man nicht int-Berechnungen inmitten eines Fakultäts-Test-Algorithmus testen, sondern separat,

hier hat man ein allgemeines Problem zwischen zwei Klassen, da interessiert es nicht ob das eine ein JPanel ist und ein bestimmtes Layout hat,


und weiter oben in der Webprogrammierung wird man die SSL-Verschlüsselung auch unabhängig vom Inhalt des PDFs testen, was man gerade nach Australien schicken will
 

muemmel_0811

Bekanntes Mitglied
Hi Ihr zwei,

erst noch mal Danke an Euch beide - jetzt hab ich's kapiert und kann es Dank Leroy42 auch umsetzen :D

Was die Testumgebung angeht: ich hab da ja noch mehr getestet, als nur diese 2 Klassen-Sache. Und ich bin ehrlich gesagt zu faul, jedes mal wieder irgendwas Neues zu stricken, nur um mal schnell hier eine Frage zu stellen.

Nur so nebenbei: meine eigentliche GUI hab ich über's Tablelayout realisiert, wohl auch nicht perfekt verstanden, aber es ist fabriziert sogar bei mir deutlich übersichtlicheren Code als das Null-Layout.

Danke noch mal und viele Grüße,
muemmel
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
B Zugriff auf Variablen anderer Klassen Java Basics - Anfänger-Themen 5
P Zugriff auf Variablen anderer Klassen Java Basics - Anfänger-Themen 13
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
A Methoden Zugriff auf eingelesene Variablen in der main Methode (ohne Änderung der Parameterliste) Java Basics - Anfänger-Themen 4
B Zugriff auf Variablen? Java Basics - Anfänger-Themen 5
F Klassen Klasse in Klasser - Zugriff auf Variablen Java Basics - Anfänger-Themen 8
T zugriff auf lokale variablen? Java Basics - Anfänger-Themen 6
B Zugriff auf Variablen in nicht bekannten Instanzen Java Basics - Anfänger-Themen 6
H Klassenübergreifender Zugriff auf Variablen Java Basics - Anfänger-Themen 7
P zugriff auf private variablen Java Basics - Anfänger-Themen 5
G Zugriff auf private Variablen einer inneren Klasse Java Basics - Anfänger-Themen 5
A Zugriff auf Member-Variablen Java Basics - Anfänger-Themen 8
J Aufbau von Klassen und zugriff auf alle Variablen Java Basics - Anfänger-Themen 7
M Zugriff auf Variablen Java Basics - Anfänger-Themen 11
E Bitte um Hilfe! Zugriff auf "veränderte" Variablen Java Basics - Anfänger-Themen 2
I In unterschiedlichen Applikation Zugriff auf eine gemeinsame Anwendung? Java Basics - Anfänger-Themen 8
C Zugriff auf Methode Java Basics - Anfänger-Themen 2
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
Encera Zugriff auf Map-Objekte Java Basics - Anfänger-Themen 3
T Zugriff auf Control anderer Klasse Java Basics - Anfänger-Themen 5
W Unterschiede bei Zugriff auf Objekt und Klassenvariablen über einen Getter? Java Basics - Anfänger-Themen 2
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
R TreeSet Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 8
C Kein Zugriff auf Klassenmethoden in Main Methode Java Basics - Anfänger-Themen 23
H Zugriff verweigert Java Basics - Anfänger-Themen 5
moiss002 Umgebungsvariable Kein Zugriff auf ein Array Java Basics - Anfänger-Themen 7
B Probleme mit Zugriff auf Dateisystem Windows 10 ( jFileChooser) Java Basics - Anfänger-Themen 17
B Zugriffsmodifier, Zugriff außerhalb Package Java Basics - Anfänger-Themen 5
C Zugriff auf Attribut von Oberklasse Java Basics - Anfänger-Themen 8
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
M Gettter/Setter Methoden Klassenfelder kapselung und zugriff? Java Basics - Anfänger-Themen 1
S Zugriff auf protected Fields = guter Programmierstil? Java Basics - Anfänger-Themen 11
M Pfadprobleme - Zugriff auf einen Ordner im Workspace Java Basics - Anfänger-Themen 17
ruutaiokwu Bluetooth-Zugriff, braucht es dazu plattformabhängige Libraries oder kann das Java mittlerweile selbst? Java Basics - Anfänger-Themen 10
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
M Zugriff auf eine ArrayList in einer anderen Klasse Java Basics - Anfänger-Themen 4
L Methoden Zugriff <identifier> expected Java Basics - Anfänger-Themen 13
T Java - Zugriff nur mit CLASSPATH ? Java Basics - Anfänger-Themen 7
B Klassen Zugriff auf ein Objekt einer Klasse aus einer Methode heraus Java Basics - Anfänger-Themen 4
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
D Zugriff auf Methode einer anderen Klasse Java Basics - Anfänger-Themen 5
S Zugriff auf Objekt Java Basics - Anfänger-Themen 5
A Klassen Zugriff auf Instanzen Java Basics - Anfänger-Themen 2
N ArrayList in eigener Klasse erzeugen mit Zugriff Java Basics - Anfänger-Themen 7
J Zugriff auf Variable in anderem Programm Java Basics - Anfänger-Themen 5
Q Zugriff auf Attribute Java Basics - Anfänger-Themen 3
J Klassen Zugriff auf ein "String Array" Java Basics - Anfänger-Themen 6
H Datentypen ArrayList in ArrayList: Zugriff Java Basics - Anfänger-Themen 6
J get methoden zugriff und objekt erzeugung Java Basics - Anfänger-Themen 30
J Datenbank Zugriff Java Basics - Anfänger-Themen 24
T Zugriff auf JCheckBox Java Basics - Anfänger-Themen 8
E Netzlaufwerk Zugriff schlägt fehl Java Basics - Anfänger-Themen 11
C Group, Actor und Instanz-Zugriff, LibGDX Java Basics - Anfänger-Themen 4
S Zugriff auf Attribut einer unbekannten Klasse erhalten Java Basics - Anfänger-Themen 6
R Methoden Methode der GUI-Klasse Zugriff auf Methoden der Hauptklasse Java Basics - Anfänger-Themen 9
S Vererbung Zugriff auf die Basisklasse einer "zweiten" Erweiterungsklasse Java Basics - Anfänger-Themen 2
Z Threads Threads - Zugriff auf Ressourcen ohne(Lock, Synchronized) Java Basics - Anfänger-Themen 2
S Vererbung Zugriff auf Methode funktioniert nicht (static/non-static) Java Basics - Anfänger-Themen 3
F Klassen Zugriff auf verschachtelte Objekte Java Basics - Anfänger-Themen 11
J Sichtbarkeit und Zugriff Java Basics - Anfänger-Themen 9
G Wieviel kostet der Zugriff auf Objektattribute im Vergleich zur Erstellung von vars in Methode? Java Basics - Anfänger-Themen 11
L Zugriff auf zwei Java-Quellcodes Java Basics - Anfänger-Themen 3
A OOP Zugriff auf Objekte von außen Java Basics - Anfänger-Themen 8
M Kapselung Datenkapselung Sinn direkter Zugriff? Java Basics - Anfänger-Themen 1
G Methoden Zugriff auf Methode.. aus einer anderen Klasse Java Basics - Anfänger-Themen 6
J JDialog Zugriff auf parent JDialog Java Basics - Anfänger-Themen 5
K Collections Zugriff auf ein bestimmtes Element in der Collection Java Basics - Anfänger-Themen 1
K ArrayList in Konstruktor - wie späterer Zugriff Java Basics - Anfänger-Themen 2
F Zugriff auf Objekt einer anderen Klasse Java Basics - Anfänger-Themen 7
P Zugriff auf Felder in ArrayList Objekten Java Basics - Anfänger-Themen 2
J Erste Schritte Zugriff auf Eigenschaft Java Basics - Anfänger-Themen 2
M MVC - Problem mit Zugriff auf Objekt Java Basics - Anfänger-Themen 4
D Zugriff auf von einer anderen Klasse erstellten Objekten Java Basics - Anfänger-Themen 5
C 5 - Zugriff verweigert Java Basics - Anfänger-Themen 1
K Zugriff auf Variabeln Wert einer Instanz Java Basics - Anfänger-Themen 4
Z Methoden Zugriff mit Klasse 3 auf Methode von Klasse 2 welche in Klasse 1 erzeugt wird Java Basics - Anfänger-Themen 6
Z Zugriff auf andere Methoden Java Basics - Anfänger-Themen 12
Z Zugriff auf Pakete Java Basics - Anfänger-Themen 5
G Zugriff zwischen Klassen Java Basics - Anfänger-Themen 15
N Problem mit Swing Textfeld und Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 6
H Kein Zugriff auf das Element einer JList möglich: Fehlermeldung Java Basics - Anfänger-Themen 2
W OOP Zugriff auf mit Objekt erstellte Struktur Java Basics - Anfänger-Themen 7
F Klassen Zugriff auf Fenster aus versch. Klassen Java Basics - Anfänger-Themen 5
M Variablen Zugriff von außerhalb eines Blockes auf eine Variable innerhalb eines Blockes Java Basics - Anfänger-Themen 2
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
B Klassen Zugriff auf Daten der Child-Klasse Java Basics - Anfänger-Themen 9
W Typisierte ArrayList und der Zugriff auf den Typ Java Basics - Anfänger-Themen 5
M Zugriff auf Klasse Java Basics - Anfänger-Themen 2
K Zugriff auf C: Java Basics - Anfänger-Themen 5
S Das richtige Format für den SOAP Zugriff Java Basics - Anfänger-Themen 0
S Klassen Zugriff auf Attribute einer zweiten Klasse, welche durch dritte gesettet wurden? Java Basics - Anfänger-Themen 2
N Zugriff bei Package Struktur Java Basics - Anfänger-Themen 6
M Enum: Zugriff auf Konstanten Java Basics - Anfänger-Themen 7
V Zugriff auf jProgressbar Java Basics - Anfänger-Themen 10
B Zugriff auf csv-Datei per hashmap Java Basics - Anfänger-Themen 5
G Spalte in JTable unsichtbar machen, Zugriff auf Daten ermöglichen Java Basics - Anfänger-Themen 2
T ZUgriff auf 'Werte' Java Basics - Anfänger-Themen 3
J Vererbung Zugriff auf private Variable Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben