globale variablen

Status
Nicht offen für weitere Antworten.

opino

Mitglied
hallo forum,

ich habe c, c++ programiert und arbeite mich gerade in Java ein, mit Netbeans habe ich eine GUI erstellt.
Dort habe ich auf einen Button eine Action gelegt. Außerdem habe ich mir eine Testklasse erstellt.
Wie kann ich inerhalb der

Code:
 private void newbtActionPerformed(java.awt.event.ActionEvent evt) {
felderfuellen();   
}

der Methode mein objekt ansprechen. Gibt es diese Möglichkeit überhaupt?

für eine Antwort wäre ich sehr dankbar.
 

Meru

Bekanntes Mitglied
Globale Variablen gibt es in Java nicht. Java ist streng Objektorientiert!
Du musst also ein Objekt der Klasse instanzieren, welches die gewünschte Methode enthält und dann kannst du es aufrufen

Code:
//Achtung -->> pseudocode

ClassA{
  public ClassA(){
  }
  
  public void felderfuellen(){
    // tu dies, tu das
  }
}


ClassB{
  ...
  ...

  ClassA aaa = new ClassA();
  ...
  ...

  private void newbtActionPerformed(java.awt.event.ActionEvent evt) {
    aaa.felderfuellen();   
  }

  ...
  ...
 

The_S

Top Contributor
Oder eine öffentliche, statische Variable in einer Klasse. Das sollte noch am ehesten der Vorstellung einer globalen Variable entsprechen.
 

Marco13

Top Contributor
Hobbit_Im_Blutrausch hat gesagt.:
Oder eine XXXXXX :autsch: XXXXXXXXX. Das sollte noch am ehesten der Vorstellung einer globalen Variable entsprechen.
Eigentlich hätte ich von dir nicht solche Empfehlungen erwartet :noe:
 

The_S

Top Contributor
Wenn er UNBEDINGT so etwas haben will, bitte. Die Möglichkeit gibt es nunmal, und wenn ich sie ihm nicht sage, dann bekommt er sie irgendwo anders her. Für Anfänger ist es vorallem zu Beginn nicht einfach OO zu denken und einzusetzen. Und bevor er die Lust am Programmieren verliert, weil er es momentan noch nicht anderst umsetzen kann (Gedankengänge z. B.), dann soll er es lieber so machen, und sich dann in ein paar Monaten denken (wenn er dann seinen Code nochmal anschaut) "Was hab ich denn da für scheiße programmiert?". War bei mir nicht anders ;) .

Dass soetwas gegen jeden OO-Grundgedanken verstößt brauch ich wohl nicht weiter erwähnen.
 

trazzag

Bekanntes Mitglied
dann gibt's da ja noch die Möglichkeit globale Variablen über das Singleton-Muster zu realisieren (ist ja nicht wirklich was anderes).
 

0x7F800000

Top Contributor
@leute:
ihr denkt da irgendwie in falsche richtung... dem OP gings primär nicht um globale variablen, sondern darum, wie er aus dieser methode irgendein sonstwo instanziiertes objekt anspricht.

@opino: mir ist leider nicht so wirklich klar geworden, was du mit
mein objekt ansprechen
meinst... kommt ja drauf an wo das objekt ist und wo du diese methode definiert hast... Wenn das objekt selbst den Listener implementiert, und diese methode beinhaltet, dann kannst du darauf einfach direkt zugreifen. Aber diesem Code-Ausschnitt kann man nicht entnehmen wo was ist...
 

ms

Top Contributor
trazzag hat gesagt.:
dann gibt's da ja noch die Möglichkeit globale Variablen über das Singleton-Muster zu realisieren (ist ja nicht wirklich was anderes).
arrrrhhhhhhg ... ich glaub bei der nächsten Singleton-Empfehlung vergesse ich mich.

ms
 

The_S

Top Contributor
Andrey hat gesagt.:
@leute:
ihr denkt da irgendwie in falsche richtung... dem OP gings primär nicht um globale variablen, sondern darum, wie er aus dieser methode irgendein sonstwo instanziiertes objekt anspricht.

Der Titel ist aber so verleitend. Ich neige dann immer dazu mir den Text nicht durchzulesen oder nur zu überfliegen ;) .
 

trazzag

Bekanntes Mitglied
ms hat gesagt.:
trazzag hat gesagt.:
dann gibt's da ja noch die Möglichkeit globale Variablen über das Singleton-Muster zu realisieren (ist ja nicht wirklich was anderes).
arrrrhhhhhhg ... ich glaub bei der nächsten Singleton-Empfehlung vergesse ich mich.

ms

Das war ja keine Empfehlung, sondern nur das Aufzeigen einer Möglichkeit. Aber was spricht prinzipiell gegen Singleton? Ich denke schon, daß dieses Entwurfsmuster in manchen Anwendungsfällen durchaus seine Berechtigung hat!
 

0x7F800000

Top Contributor
ja, aber ein singleton, um die referenz von irgendeinem objekt an einen action listener zu übergeben? :autsch: hallo? :bae:
 

trazzag

Bekanntes Mitglied
das singleton hier eher nicht eingesetzt werde sollte, ist ja unstrittig - gib mir doch nur um die vollständigkeit der Möglichkeiten ;-)
 

0x7F800000

Top Contributor
okay... singletons sind unter umständen keine singletons mehr wenn es mehrere classloader gibt. super. zur kenntnis genommen. :toll: Glaube aber kaum das opino damit bei seiner gui-frage viel weitergekommen ist :D
 

ARadauer

Top Contributor
aus dieser methode irgendein sonstwo instanziiertes objekt anspricht.
is das nicht, etwas was man auf keinen fall machen soll.
da kann ich ja gleich schon alles public static machen und in eine klasse werfen.

also konkret zum problem zurück:
Code:
private void newbtActionPerformed(java.awt.event.ActionEvent evt) { 
felderfuellen();    
}
wenn du hier eine methode eines fremden objektes aufrufen willst, so wär es sinnvoll, wenn dein objekt eine refernz auf das fremde objekte hat.

zb du hast eine gui und willst jetzt in der gui eine methode des controller aufrufen.

entweder instanziert dein controller die gui und gibt sich selber mit oder eine andere klasse instanziert controller und gui und setzt den controller in die gui.
 

opino

Mitglied
Vielen dank für die vielen Beiträge.
Ich habe mir gestern noch ein Tachenrechnerbeispiel aus dem Forum gezogen und das durchgeschaut.

Mein Fehler war das ich die Objekte in Klassenmethoden definiert habe und ich sie somit ich in anderen Methoden
ansprechen konnte.
Ich definiere meine Objekte nun gleich zu begin der Klasse und kann diese nun auch von überall ansprechen.

Noch einmal vielen dank für die vielen Antworten.
 

Meru

Bekanntes Mitglied
Marco13 hat gesagt.:
Hobbit_Im_Blutrausch hat gesagt.:
Oder eine XXXXXX :autsch: XXXXXXXXX. Das sollte noch am ehesten der Vorstellung einer globalen Variable entsprechen.
Eigentlich hätte ich von dir nicht solche Empfehlungen erwartet :noe:

So kann man das nicht sagen. Klar macht es Sinn, statische Werte auf diese Weise fest zu definieren.

Beispiel:

Code:
JLabel la = new JLabel("blabla", JLabel.NORTH_EAST);

JPanel panel = new JPanel(new BorderLayout());
panel.add(new JButton(), BorderLayount.NORTH);

etc.
etc.
etc.

Genauso kann man sich eigene Sachen die so "superglobal" und statisch sind definieren.

Beispielsweise habe ich eine Klasse, dass wenn ich der ein JLabel mit einem Wert übergebe, das Aussehen verändern


mySetComponent(JLabel, MyDesign.STYLE_TITLE);

etc.
 

Marco13

Top Contributor
Die "Variablen", von denen du jetzt redest sind eigentlich eher Konstanten :wink: Natürlich sind public static final Objekte für viele Dinge OK. Aber wenn man das "final" wegläßt, hat man IMHO irgendwas falsch gemacht.
 

Meru

Bekanntes Mitglied
Ich kenne "globale" variablen eigentlich nur als Konstanten, daher meine Annahme, das er dies meinte. An den anderen Fall ohne final habe ich in diesem Moment nicht gedacht. Dann will ich mich mal entschuldigen das ich zu schnell geschossen habe ;)
 

Janus

Bekanntes Mitglied
ich empfehle eher, die "richtige" klasse als listener zu registrieren. wenn die das event empfangende klasse nicht die entsprechenden methoden anbietet, die gerufen werden sollen, dann ist sie wahrscheinlich der falsche listener.

ansonsten ist es aber richtig, dass eine klasse eine referenz auf ein anderes objekt benötigt, wenn sie an diesem methoden aufrufen will. wenn man nicht das gesamte interface zur verfügung stellen möchte, arbeitet man in java üblicherweise mit callbacks.
 

ms

Top Contributor
Janus hat gesagt.:
wenn man nicht das gesamte interface zur verfügung stellen möchte, arbeitet man in java üblicherweise mit callbacks.
???:L
Vielleicht meinst du ja das Richtige - nur klingt es nicht verständlich.

ms
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Vererbung/Globale Variablen Java Basics - Anfänger-Themen 8
D globale Variablen zur Laufzeit erzeugen Java Basics - Anfänger-Themen 5
G Globale Variablen Java Basics - Anfänger-Themen 9
G Globale Variablen Java Basics - Anfänger-Themen 3
M Globale Variablen werden durch KeyListener nicht aktualisier Java Basics - Anfänger-Themen 10
F Globale Variablen wie in C++? Java Basics - Anfänger-Themen 5
J "Globale Variablen" Java Basics - Anfänger-Themen 26
S globale Variablen Java Basics - Anfänger-Themen 9
J Globale Variablen Java Basics - Anfänger-Themen 3
D Globale Variablen Java Basics - Anfänger-Themen 31
C Globale Variablen und Array mit verschiedenen Typen Java Basics - Anfänger-Themen 3
S globale Variablen Java Basics - Anfänger-Themen 7
P Globale Objekte Java Basics - Anfänger-Themen 2
T Globale Variable mehrmals verwenden Java Basics - Anfänger-Themen 7
Traxter Globale Variable ? Java Basics - Anfänger-Themen 11
Jackii Globale Variable aus anderer Klasse ändern... Java Basics - Anfänger-Themen 4
M Variablen Globale Variable? Java Basics - Anfänger-Themen 4
Luk10 Globale (semi-finale) Varibalen Java Basics - Anfänger-Themen 9
U Globale Proxy Einstellungen ändern Java Basics - Anfänger-Themen 3
B Globale vector? Java Basics - Anfänger-Themen 7
C lokale Variable verwenden statt globale Java Basics - Anfänger-Themen 7
B Methoden Globale Methoden "Toolbox" Java Basics - Anfänger-Themen 3
S globale Variable deklarieren Java Basics - Anfänger-Themen 10
E Globale int Variable? Java Basics - Anfänger-Themen 6
K Datentypen Globale Variable direkt initialisieren oder im Konstruktor? Java Basics - Anfänger-Themen 13
T Globale Variable wird nicht gefunden Java Basics - Anfänger-Themen 6
T Globale Variable (Font) Java Basics - Anfänger-Themen 21
G Müssen globale Funktionen immer "static" sein? Java Basics - Anfänger-Themen 13
A Globale Variable änderbar Java Basics - Anfänger-Themen 3
A Globale Methode ohne imports und übergeben? Java Basics - Anfänger-Themen 2
P textfarbe,textgröße, textart als globale einstellung Java Basics - Anfänger-Themen 7
D Globale Klassenvariablen. Java Basics - Anfänger-Themen 12
P Globale und ständige Überwachung eines Textfeldes auf text? Java Basics - Anfänger-Themen 40
M Superglobale globale Variable? Java Basics - Anfänger-Themen 10
P Globale Variable Java Basics - Anfänger-Themen 3
J "globale" variable definieren? Java Basics - Anfänger-Themen 7
S Globale Variable / Methode Java Basics - Anfänger-Themen 5
O Welcher Object-Lock-Pool bei static Variablen? Java Basics - Anfänger-Themen 3
T variablen klassen übergreifend Java Basics - Anfänger-Themen 12
T Variablen Java Basics - Anfänger-Themen 1
N Verständnis Frage zu Variablen Java Basics - Anfänger-Themen 3
M Aufsummieren von variablen Wertegrößen Java Basics - Anfänger-Themen 17
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
ashi Variablen aufrufen Java Basics - Anfänger-Themen 17
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
C Konstruktoren und Variablen Java Basics - Anfänger-Themen 42
F Auf Variablen eines Konstruktors zugreifen Java Basics - Anfänger-Themen 4
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
B Variablen Variablen übertragen ohne Klassen Java Basics - Anfänger-Themen 5
B Methoden Methoden haben kein Zugriff auf variablen Java Basics - Anfänger-Themen 4
T Java Swing - Dreieck zeichnen mit verschiedenen Variablen Java Basics - Anfänger-Themen 8
Arif Vererbung Methodenvererbung mit finalen Variablen Java Basics - Anfänger-Themen 1
M Wie kann ich ein Objekt erstellen, wenn sich der Klassenname in einer Variablen befindet? Java Basics - Anfänger-Themen 10
S Variablen Variablen in einer Schleife erstellen lassen Java Basics - Anfänger-Themen 11
J Ich brauche Hilfe bei einem Code (Variablen speichern) Java Basics - Anfänger-Themen 29
F Variablen Werte einer Klasse überschreiben Java Basics - Anfänger-Themen 4
N Speichern von Werten in Variablen nach Schließen des Programms Java Basics - Anfänger-Themen 3
J Frage dazu Variablen klassenübergreifend zu verändern Java Basics - Anfänger-Themen 22
M Java Instanz-Variablen ? Java Basics - Anfänger-Themen 3
B Variablen von Methoden übertragen Java Basics - Anfänger-Themen 2
M Variablen umbenennen Java Basics - Anfänger-Themen 1
T Körper Brechnung - Lokale Variablen in Methoden übergeben Java Basics - Anfänger-Themen 10
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
mars90 Fehler in der Variablen Deklaration Java Basics - Anfänger-Themen 8
E Variablen in formatierter Ausgabe Java Basics - Anfänger-Themen 15
V Schleife für das Einlesen von Werten für int Variablen, die Bestandteil von Arrays sein sollen Java Basics - Anfänger-Themen 16
M Komisches Verhalten der Variablen Java Basics - Anfänger-Themen 6
H Variablen Multiplikation einer inkrementierten Variablen Java Basics - Anfänger-Themen 5
scratchy1 Variablen vertauschen wenn Bedingung "umgedreht" wird Java Basics - Anfänger-Themen 40
J Variablen mit einer anderen Klasse bekannt machen Java Basics - Anfänger-Themen 7
C Methoden Problem beim Speichern von Variablen Java Basics - Anfänger-Themen 1
A Übergreifende Variablen Java Basics - Anfänger-Themen 17
A Variablen Verständnisfrage bzgl. Variablen/Referenzen Java Basics - Anfänger-Themen 3
H Variablen Methode zum Abfragen von Variablen aus Subklassen Java Basics - Anfänger-Themen 9
P Variablen Variablen voneinander abhängig Java Basics - Anfänger-Themen 54
F Liste nach einer Variablen sortieren Java Basics - Anfänger-Themen 6
L Variablen in anderen Klassen nutzen Java Basics - Anfänger-Themen 6
M For-Schleife durch zwei versch. Variablen begrenzen Java Basics - Anfänger-Themen 27
J Klassen Variablen in andere Klassen oder Methoden übernehmen Java Basics - Anfänger-Themen 1
P Liste auslesen und in Variablen speichern Java Basics - Anfänger-Themen 7
temi Redundante Variablen Java Basics - Anfänger-Themen 29
Aprendiendo Zweifel mit versteckter Variablen Java Basics - Anfänger-Themen 16
L Variablen einmal nur zu weisen Java Basics - Anfänger-Themen 62
D Statische Variablen/Methoden Java Basics - Anfänger-Themen 3
R Abfrage von Variablen in Unterklassen einer ArrayList Java Basics - Anfänger-Themen 9
M Listener für Button - Wert von Variablen verändern Java Basics - Anfänger-Themen 14
S Vererbung Variablen klassenübergreifend nutzen Java Basics - Anfänger-Themen 42
R Auf Variablen einer anderen Klasse zugreifen? Java Basics - Anfänger-Themen 1
D Fehlermeldung obwohl Variablen bereits deklariert sind? Java Basics - Anfänger-Themen 14
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
Aruetiise Variablen JFrame und Variablen Java Basics - Anfänger-Themen 3
L Variablen dekleration + reset Java Basics - Anfänger-Themen 16
T Übernahme einer Variablen im ActionListener/ActionEvent Java Basics - Anfänger-Themen 2
D Kapselung final Variablen mit Getter? Java Basics - Anfänger-Themen 2
C Variablen von einem JFrame in einen anderen übertragen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben