Wie kann ich Variablen aus einer Innerklasse heraus ändern?

Status
Nicht offen für weitere Antworten.

isowiz

Mitglied
Hallo, ich versuche mich etwas in die Java-Programmierung einzuarbeiten und habe dazu auch eine Frage ich denke in Richtung Objektorientierung..

Ich habe eine GUI Oberfläche die komplett in einer Klasse (ProgrammGUI.java) geschrieben ist. Auch die Listener-Klassen sind in dieser Klasse drin.
In der Klasse ist eine Varibale, die entweder true oder false ist und die ich im Programm an verschiedenen Stellen für Abfragen benötige. Die Änderung der Variable kann über die Auswahl einer Menüpunktes erfolgen.

Doch wenn ich nun die Variable über die innere Klasse (ActionListener) verändere wird die Änderung von der ProgrammGUI nicht bemerkt.

Brauche ich hier eine static Varibale? Oder wie kann ich das Problem lösen?
 

Niki

Top Contributor
Ich vermute du änderst nur die Variable deiner Klasse. Die Gui bekommt ja davon nichts mit. Wenn sich die GUI ändern soll musst du die zuständige/n Komponente/n ändern. Wenn mehrere Sachen darauf reagieren sollen würde ich an deiner Stelle deine Komponenten von den Swing-Klassen ableiten und eigene Listener-Interfaces definieren. Dann kannst du die Komponenten bei einer zentralen Klasse registrieren und wenn sich was ändert würde diese zentrale Klasse alle betroffenen Komponenten benachrichtigen.
 

isowiz

Mitglied
Das klingt gut Niki. Allerdings weis ich nicht, wie ich das programmiertechnisch umsetzten muss.
Ich glab ich muss mich erst weiter indie Materie einarbeiten bevor ich Deinen Beitrag versteh. So versteht ich zb. nicht, was Du mit "Komponenten von den Swing-Klassen ableiten" meinst und wo der Vorteil von "eigene Listener-Interfaces" sind.
 

Niki

Top Contributor
Ok, Code sagt mehr als tausen Worte :)

Code:
public interface IrgendwasHatSichGeaendertListener{
  public void irgendwasHatSichGeaendert(IrgendwasHatSichGeaendertEvent event);
}

public class IrgendwasHatSichGeaendertEvent{

  private String name = null;
  private Object newValue = null;
  .....

  //setter und getter

}

public class MeinLabel extends JLabel implements IrgendwasHatSichGeaendertListener{

  public void  irgendwasHatSichGeaendert(IrgendwasHatSichGeaendertEvent event){
   Object newValue = event.getNewValue();

    //mach irgenwas mit dem neuen Wert
  }


}

public class Benachrichtiger{

  private List<IrgendwasHatSichGeaendertListener> listener = null;

  public Benachrichtiger(){
    listener = new ArrayList<IrgendwasHatSichGeaendertListener>();
  }

  public void addIrgendwasHatSichGeaendertListener(IrgendwasHatSichGeaendertListener l){
    listener.add(l);
  }

  public void removeIrgendwasHatSichGeaendertListener(IrgendwasHatSichGeaendertListener l){
    listener.remove(l);
  }

  public void benachrichtigeListener(IrgendwasHatSichGeaendertEvent event){
    for(IrgendwasHatSichGeaendertListener l : listener){
      listener.irgendwasHatSichGeaendert(event);
    }
  }
}

// so schauts dann aus:
Benachrichtiger bn = new Benachrichtiger();
MeinLabel ml = new MeinLabel();
bn.addIrgendwasHatSichGeaendertListener(ml);

//und irgendwann dann das:
bn.benachrichtigeListener(new IrgendwasHatSichGeaendertEvent("Name", newValue));
//jetzt bekommt das Objekt ml die Benachrichtigung, das sich was geändert hat!

Was ich vergaß, es gibt sowas natürlich auch schon:

Observer
Observable
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Variablen an eine Form binden? AWT, Swing, JavaFX & SWT 2
S JavaFX Variablen in einem FXML File verwenden AWT, Swing, JavaFX & SWT 8
L Auf Variablen zugreifen AWT, Swing, JavaFX & SWT 6
S 2D-Grafik Problem mit Variablen AWT, Swing, JavaFX & SWT 4
J JavaFX Zugriff auf FXML-Variablen eines anderen Controllers AWT, Swing, JavaFX & SWT 2
Paul15 ActionListener Variablen AWT, Swing, JavaFX & SWT 13
F MouseMotionListerener & Verfügbarkeit von Variablen AWT, Swing, JavaFX & SWT 5
B Event Handling MouseListener Behält seine Variablen, auch wenn ich ein neus Objekt erstelle AWT, Swing, JavaFX & SWT 2
T Einen Variablen Wert in einem TextField AWT, Swing, JavaFX & SWT 4
H SWT NullPointerException bei Zugriff auf Variablen des Hauptfensters AWT, Swing, JavaFX & SWT 6
B Variable ist leer / Scope von Variablen AWT, Swing, JavaFX & SWT 2
P non-static variablen benutzen AWT, Swing, JavaFX & SWT 7
P Variablen in einem ActionListener zurücksetzen AWT, Swing, JavaFX & SWT 6
N Variablen in Events AWT, Swing, JavaFX & SWT 4
M Zugriff auf Variablen eines Objektes ohne sie auf static zu setzen AWT, Swing, JavaFX & SWT 9
C SWT Textfeld mit festem und variablen Inhalt AWT, Swing, JavaFX & SWT 13
O Variablen an anonyme Funktion AWT, Swing, JavaFX & SWT 10
F Variablen zwischen Frames AWT, Swing, JavaFX & SWT 5
N Variablen an JDialog übergeben AWT, Swing, JavaFX & SWT 2
hdi Fenster mit variablen Components AWT, Swing, JavaFX & SWT 3
B Variablen-Namen erfragen AWT, Swing, JavaFX & SWT 5
A problem mit variablen und dialod AWT, Swing, JavaFX & SWT 2
N JLabel o.ä. mit Variablen verknüpfen AWT, Swing, JavaFX & SWT 10
S Wie Variablen Übergabe an Dialog?? AWT, Swing, JavaFX & SWT 2
M variablen uebergabe ?? AWT, Swing, JavaFX & SWT 2
MiMa Optimieren einer Methode zum Zentrieren von Fenstern AWT, Swing, JavaFX & SWT 0
T VerifyListener - Ersetzen einer 0 AWT, Swing, JavaFX & SWT 5
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
N Dropshadow setzen bei einer Gruppe von Tiles, die sich jeweils in einer Stackpane befinden, welche in einer Gridpane angeordnet sind. AWT, Swing, JavaFX & SWT 0
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
H JavaFX Timeline II: Verschieben einer ImageView AWT, Swing, JavaFX & SWT 16
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
L Swing TextPanel Schrift untereinander und auf einer Höhe AWT, Swing, JavaFX & SWT 3
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
Ernesto95 JavaFX Return Value nach Beendigung einer Animation AWT, Swing, JavaFX & SWT 15
melaniemueller Wortliste in einer Datei ablegen AWT, Swing, JavaFX & SWT 12
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
Jose05 JavaFx Fxml: GUI aus einer anderen Klasse starten AWT, Swing, JavaFX & SWT 1
U Was genau ist das Objekt einer affinentransformation? AWT, Swing, JavaFX & SWT 1
B JavaFX Prüfen ob ein Objekt sich mehrmals in einer Liste befindet AWT, Swing, JavaFX & SWT 5
mac2010 JavaFX Einbindung einer Karte AWT, Swing, JavaFX & SWT 1
donnico2 Objekte in der GUI ausgeben mit Hilfe einer DAO AWT, Swing, JavaFX & SWT 1
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
W Aufrufen einer bestimmten Scene mit if-Bedingung AWT, Swing, JavaFX & SWT 4
J Ablaufsteuerung/Anleitung machen mit JDialog und einer Zustandsmaschine AWT, Swing, JavaFX & SWT 1
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
missy72 JavaFX TableView / TableColumn / ObservableList / zwei Werte in einer Zelle AWT, Swing, JavaFX & SWT 2
S JavaFX - mit Listener Veränderungen in einer TableView abhören AWT, Swing, JavaFX & SWT 3
missy72 JavaFX ObservableList in einer ArrayList speichern. AWT, Swing, JavaFX & SWT 7
HoT Sortieren von ein paar Zeilen in einer Tabelle, aber nicht die ganze Tabelle AWT, Swing, JavaFX & SWT 3
kodela Swing Element einer JComboBox ausgrauen AWT, Swing, JavaFX & SWT 3
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
N Einer TextArea ein ScrollPane hinzufügen AWT, Swing, JavaFX & SWT 8
L JavaFX Exception nach includieren einer fxml // nested controller AWT, Swing, JavaFX & SWT 1
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
A checkbox in einer TableView abhängig von einem anderen Celleninhalt disablen AWT, Swing, JavaFX & SWT 1
G Verknüpfung einer pdf Datei AWT, Swing, JavaFX & SWT 2
B Ausgaben einer Umrechnung vom Textfeld in ein Label AWT, Swing, JavaFX & SWT 2
F jTree und das Model aus einer eigenen Klasse AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
N Wie kann ich zwei Grafiken in einer Oberfläche anzeigen lassen? AWT, Swing, JavaFX & SWT 8
@SupressWarnings() JavaFX Auf den Controller einer ListCell zugreifen AWT, Swing, JavaFX & SWT 4
Drachenbauer Swing Wie ändere ich den Hintergrund vom Anzeigefeld einer JComboBox, die nicht zum Hineinschreiben offen steht? AWT, Swing, JavaFX & SWT 32
H 3 verschiedene Nachrichten in einer FXML View die Infos kommen aus DB AWT, Swing, JavaFX & SWT 4
karlmasutra JavaFX Zugriff auf eine erzeugte Scene aus einer anderen Klasse AWT, Swing, JavaFX & SWT 1
S Java GUI durch variable Größe einer Map anpassen AWT, Swing, JavaFX & SWT 3
B Textfelder in einer ListView ausgeben AWT, Swing, JavaFX & SWT 13
J Searchfunktion auf einer MS Access Datenbank AWT, Swing, JavaFX & SWT 7
B Text im Tetfeld in einer TableView darstellen AWT, Swing, JavaFX & SWT 20
M Inhalte einer FlowPane AWT, Swing, JavaFX & SWT 4
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
E Prinzip: wie man Ereignisse in einer GUI verarbeit. Frage zum Design? AWT, Swing, JavaFX & SWT 10
FRI3ND JavaFX: Wie kann ich einer Scene Argumente übergeben? AWT, Swing, JavaFX & SWT 14
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
G JavaFX JavaFX-Dialog aus einer Nicht-JavaFX-Anwendung heraus AWT, Swing, JavaFX & SWT 1
1 Swing Progressbar benutzen um Fortschritt einer Methode anzuzeigen AWT, Swing, JavaFX & SWT 4
K JavaFX ViewTable mit einer LinkedList befüllen AWT, Swing, JavaFX & SWT 3
L CardLayout in einer Klasse? AWT, Swing, JavaFX & SWT 2
J Compiler in der JavaFX stop() Methode warten lassen bist eine Aktion in einer anderen Scene gemacht AWT, Swing, JavaFX & SWT 5
D Java FX Image in einer Webanwendung annotieren und den Bereich ausschneiden AWT, Swing, JavaFX & SWT 0
L Java- UI zweites Fenster aus einer anderen Klasse öffnen durch ButtonClick AWT, Swing, JavaFX & SWT 4
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing Ausführung einer SwingWorker Klasse stoppen AWT, Swing, JavaFX & SWT 4
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
xYurisha Aus einer Gui Buttons, Label und ProgessBars entfernen AWT, Swing, JavaFX & SWT 4
MiMa Selektion aus einer ListView AWT, Swing, JavaFX & SWT 5
J 2D-Grafik Background einer Jpanel Klasse ändern AWT, Swing, JavaFX & SWT 1
J JFram Location aus Konstruktor einer anderen Klasse auslesen AWT, Swing, JavaFX & SWT 10
L Methode zum Füllen einer ComboBox AWT, Swing, JavaFX & SWT 4
J Suche nach einer horizontal aufklappbaren Toolbar AWT, Swing, JavaFX & SWT 1
P Variable einer Eingabe in anderes Textfeld schreiben AWT, Swing, JavaFX & SWT 7
D JavaFX Einbinden einer .fxml AWT, Swing, JavaFX & SWT 1
B Zeile einer Tabelle selektieren AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben