Swing Alter Wert von einer Variable wird verwendet

mathiasj

Bekanntes Mitglied
Hallo,
ich habe eine Variable namens ausgang. Diese Variable wird vo einer Methode überschrieben. Das klappt auch wunderbar, in einem JTextField wird Sie mir richtig angezeigt. Wenn ich die Variable jetzt aber noch einmal überschreibe, wird sie mir bei einer System.out.println() Anweisung richtig angezeigt; im JTextField, ist aber noch der alte Wert! Und das, obwohl ich eine neue Instanz des JTextFields erzeuge...

Java:
JTextField ausField = new JTextField(ausgang, 20);
    System.out.println(ausgang);

Diese Methode wird nochmal aufgerufen; ich bekomme bei .println die richtige, im JTextField die falsche Variable.
 

KSG9|sebastian

Top Contributor
Natürlich...

Du erzeugst das Textfeld und gibst diesem den initialen Text mit. Wenn nun das Textfeld verändert wird kann die Variable davon ja nix mehr wissen.

Um den "aktuellen" Wert zu bekommen musst du textFeld.getText() verwenden.
 

mathiasj

Bekanntes Mitglied
Hmm. irgendwie habe ich das icht ganz verstanden... Die Methode wird ja, nachdem die Variable geändert wurde, nochmal aufgerufen; -> eine neue Instanz des TextFields mit (eigentlich) dem überschriebenem Wert wird erzeugt?

Aber auch, wenn ich das ganze so mache, habe ich dasselbe Problem:

Java:
JTextField ausField = new JTextField(20);
    ausField.setText(ausgang);
    System.out.println(ausgang + " TextField: " + ausField.getText());
    ausField.setEditable(false);

Ich bekomme in der Eingabeaufforderung: Spieler 1 hat gewonnen TextField: Spieler 1 hat gewonnen

Und im TextField steht etwas falsches...
 

bERt0r

Top Contributor
Von dem Code den ich hier sehe, wird dein Textfield nichtmal angezeigt. Poste ein KSKB wo man dein Problem sieht. Mit den 4 Zeilen ist jedenfalls alles in Ordnung.
 

mathiasj

Bekanntes Mitglied
Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Test  implements ActionListener {
    JFrame ausFrame = new JFrame("Spiel aus");
String ausgang = null;
int x = 1;

public static void main(String[] args) {
    new Test().los();
}

public void los() {
    

    ausFrame.setSize(500, 100);
    ausFrame.setResizable(false);
    ausFrame.setLocationRelativeTo(null);
    ausFrame.setAlwaysOnTop(true);
    ausFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel ausPanel = new JPanel();
    
    JTextField ausField = new JTextField(20);
    ausField.setText(ausgang);
    System.out.println(ausgang + " TextField: " + ausField.getText());
    ausField.setEditable(false);
    
    JButton ausButton = new JButton("Neues Spiel");
    ausButton.addActionListener(this);

    ausPanel.add(ausField);
    ausPanel.add(ausButton);
    
    ausFrame.add(ausPanel);
    ausFrame.setVisible(true);
  }

public void actionPerformed(ActionEvent e) {
    ausFrame.dispose();
  if(x == 1) {
    ausgang = "Neuer String";
    x++;
  }
  else {
    ausgang ="Allerneuester String";
  }
  los();
}
}

Ich glaube, dass es irgendwie mit dem ausFrame.dispose() zusammenhängt, denn als ich das im Code vergessen habe, hat sich zwar ein neues Fenster geöffnet, doch das JTextField war richtig...
 
A

asdfdjhjhkljl

Gast
Hier hast Du einen grundsätzlichen "Systemfehler". Nur um ein neues Spiel zu starten baut man sich die GUI nicht neu zusammen. Man ändert nur die "Werte" oder setzt diese zurück und zeigt diese in den bereits existierenden GUI Komponenten an.
 

mathiasj

Bekanntes Mitglied
Nein, ich baue die GUI nicht neu auf. Ich will nur ein kleines Fester erstellen, das entweder zeigt Spieler eins hat gewonnen, oder Spieler zwei hat gewonnen. Dieses Fenster soll dann einen Nuestart Button enthalten. Aber mit dem JTextField habe ich ja ein Problem...
 
S

SlaterB

Gast
warum glaubst du dass es das neue Textfeld mit altem String ist?
viel wahrscheinlicher ist doch, dass du noch das alte Textfeld siehst,

du entfernst die alten Komponenten nicht, BorderLayout zeigt immer nur das erste Panel an, weitere eingefügte haben das Nachsehen

> ausFrame.getContentPane().removeAll();
vor dem add() verbessert die Lage,
allgemein ist aber wie schon gesagt wurde dringend davon abzuraten, neue Komponenten zu erzeugen (*),
setze doch einfach im vorhandenen Textfeld den neuen String, schon alles fertig


(*) es ist natürlich möglich, manchmal nötig, aber noch mit mehr Aufwand verbunden für sauberers Vorgehen
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Event Handling vertical ValueProperty() alter Wert gleich neuer Wert AWT, Swing, JavaFX & SWT 4
G JTable - bei falscher Eingabe wird alter Wert genommen. AWT, Swing, JavaFX & SWT 2
_user_q ThreadPool schedule Wert auf false setzen AWT, Swing, JavaFX & SWT 1
S ChoiceBox aus ArrayList per setValue() mit Wert belegen funktioniert nicht. AWT, Swing, JavaFX & SWT 0
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
L Swing Wert vom Textfield in Array List hinzufügen AWT, Swing, JavaFX & SWT 2
P Swing ActionListener überschreibt einen Wert aus der Hauptklasse nicht AWT, Swing, JavaFX & SWT 5
S hashCode int wert AWT, Swing, JavaFX & SWT 6
B Slider-Wert an anderen Slider übergeben AWT, Swing, JavaFX & SWT 5
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
S Caps-Lock Überprüfung gibt falschen Wert zurück AWT, Swing, JavaFX & SWT 1
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
Hatsi09 JCombobox default wert AWT, Swing, JavaFX & SWT 6
Bluedaishi TableView mit Combox wert wird nicht in die TableView gesetzt AWT, Swing, JavaFX & SWT 38
B AWT GUI nimmt nur 19 Ziffern an, obwohl Max Wert von Double größer ist AWT, Swing, JavaFX & SWT 7
B JavaFX JavaFX Table gespeichertes Wert auswählen/anvisieren AWT, Swing, JavaFX & SWT 3
K Swing DefaultListModel braucht zu lange, um Wert zu setzen AWT, Swing, JavaFX & SWT 7
T JavaFX Falscher Wert getLayoutBounds? + Tipps zum Code-Aufbau? AWT, Swing, JavaFX & SWT 8
ralfb1105 Swing Wert in JTextField wird falsch ausgegeben AWT, Swing, JavaFX & SWT 2
G JavaFX TableView Wert in Spalte ändern AWT, Swing, JavaFX & SWT 0
L ComboBox Wert automatisch auswählen AWT, Swing, JavaFX & SWT 6
C JavaFX mit .setText() befülltes Textfield liefert anschließend mit .getText() den ursprünglichen Wert? AWT, Swing, JavaFX & SWT 1
M JavaFX berechneten Wert in TableView schreiben AWT, Swing, JavaFX & SWT 1
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
J Slider Wert anzeigen AWT, Swing, JavaFX & SWT 15
M Wert einer Zelle aus JTable ziehen AWT, Swing, JavaFX & SWT 4
A Slider soll einen Wert übergeben AWT, Swing, JavaFX & SWT 1
R JavaFX Wert einer ChoiceBox bekommen ohne Lambdas AWT, Swing, JavaFX & SWT 11
M JavaFX Wert aus Tabellenzelle auslesen AWT, Swing, JavaFX & SWT 4
T SWT Mysql Tabelle zeigt immer nur den ersten Wert immer wieder an AWT, Swing, JavaFX & SWT 3
O JTextfield und JComboBox Wert in SQL Database speichern AWT, Swing, JavaFX & SWT 4
W JTextfield - Wert lässt sich nicht setzen AWT, Swing, JavaFX & SWT 3
A Unterklasse schreibt Wert in JFrame AWT, Swing, JavaFX & SWT 4
M SWT CCombo immer so groß wie der größte Wert! AWT, Swing, JavaFX & SWT 0
T Int-Wert aktualisieren? AWT, Swing, JavaFX & SWT 9
T Einen Variablen Wert in einem TextField AWT, Swing, JavaFX & SWT 4
J Zwei GUIs - Nach button-Klick soll ein Wert an die andere GUI übergeben werden AWT, Swing, JavaFX & SWT 15
M JSlider-Wert ändern, ohne ein ChangeEvent auszulösen AWT, Swing, JavaFX & SWT 4
E Wert aus ActionListener geben AWT, Swing, JavaFX & SWT 4
A Ermittelter Wert auf Formular übertragen. AWT, Swing, JavaFX & SWT 2
F Wert durch ActionListener an Klasse übergeben AWT, Swing, JavaFX & SWT 3
E Wert eines selektierten Knotens in einem JTree auslesen AWT, Swing, JavaFX & SWT 3
N Button Wert zuweisen AWT, Swing, JavaFX & SWT 3
Y JSlider Wert auslesen (Kategorien) AWT, Swing, JavaFX & SWT 2
R JFreeChart: nur jeden n-ten Wert auf der X-Achse anzeigen AWT, Swing, JavaFX & SWT 5
L Swing Falscher Wert nach eigener Sortierung (JTable) AWT, Swing, JavaFX & SWT 2
N jcomboBox anderer Wert als Anzeige AWT, Swing, JavaFX & SWT 6
F Wert zu Eintrag in ComboBox speichern?! AWT, Swing, JavaFX & SWT 7
R Zeile in JTable anhand von Wert einfärben AWT, Swing, JavaFX & SWT 2
C Zwei JSpinner mit dem gleichen Wert AWT, Swing, JavaFX & SWT 2
C Swing JTable: edit Cell -> versteckten Wert ändern AWT, Swing, JavaFX & SWT 12
B JSlider - Wert am Mouszeiger anzeigen lassen AWT, Swing, JavaFX & SWT 6
X Den Wert von JSpinner setzen ohne Event AWT, Swing, JavaFX & SWT 3
P Combobox liesst falschen Wert AWT, Swing, JavaFX & SWT 10
S Frame - Panel - Dialog rückgabe wert AWT, Swing, JavaFX & SWT 5
M SWT DateTime per default null Wert ? AWT, Swing, JavaFX & SWT 3
L ArrayList Wert löschen klappt nicht AWT, Swing, JavaFX & SWT 11
C jtable hintegrundfarbe integer wert AWT, Swing, JavaFX & SWT 14
S Swing noch nicht übergebenen Wert aus JComboBox auslesen AWT, Swing, JavaFX & SWT 4
S JTable Wert so bekommen wie er angezeigt wird..? AWT, Swing, JavaFX & SWT 2
I Swing JComboBox Wert setzen AWT, Swing, JavaFX & SWT 4
S Swing In JComboBox Wert und ID integrieren AWT, Swing, JavaFX & SWT 16
M Swing JTextFeld Wert in anderer Klasse aufrufen AWT, Swing, JavaFX & SWT 13
P Bei JComboBox einem Eintrag Wert zuweisen AWT, Swing, JavaFX & SWT 7
A Wert einer JComboBox auslesen AWT, Swing, JavaFX & SWT 1
B JTable Wert in Vector einlesen AWT, Swing, JavaFX & SWT 4
G JComboBox - Anzeige mit Wert verknüpfen AWT, Swing, JavaFX & SWT 3
V Start Button und Wert Eingabe in ein Fenster AWT, Swing, JavaFX & SWT 2
L JTree Frage -> nur den Wert des Knotens ausgeben? AWT, Swing, JavaFX & SWT 2
L Jcombobox + value Wert AWT, Swing, JavaFX & SWT 7
M Wert von einem Fenster zum anderen übergeben AWT, Swing, JavaFX & SWT 3
J Problem mit Alpha-Wert beim Button AWT, Swing, JavaFX & SWT 3
S JTextField. Bei Abbruch vorherigen Wert wiederherstellen AWT, Swing, JavaFX & SWT 2
D Wert von Kasse2 an Klasse1 übergeben AWT, Swing, JavaFX & SWT 3
D Scrollbalken Wert setzen AWT, Swing, JavaFX & SWT 6
S Eingegeben Wert wird nicht angezeigt AWT, Swing, JavaFX & SWT 5
S Methoden return wert? AWT, Swing, JavaFX & SWT 7
O MouseListener - Wert-Übergabe AWT, Swing, JavaFX & SWT 3
G JRadioButton beim deselektieren Wert ändern. AWT, Swing, JavaFX & SWT 2
M JTextField auslesen und Wert vergleichen? AWT, Swing, JavaFX & SWT 2
W JTextfield aktualisieren / Wert aus Datenbank neu abfragen AWT, Swing, JavaFX & SWT 2
T JTable überschreibt alten Wert AWT, Swing, JavaFX & SWT 12
T Jtable falscher Wert wird übergeben AWT, Swing, JavaFX & SWT 13
O JComboBox nach erkennt Wert nach setSelectedItem() nicht AWT, Swing, JavaFX & SWT 3
D JComboBox.getSelectedIndex() liefer immer 0 als Wert zurück? AWT, Swing, JavaFX & SWT 11
D Doppelklick in JList --> Wert auslesen AWT, Swing, JavaFX & SWT 8
G jspinner schrittweite in Abhängigkeit vom aktuellen Wert AWT, Swing, JavaFX & SWT 3
B Wert bei JFormattedTextField automatisch aktualisieren AWT, Swing, JavaFX & SWT 2
G Wert aus Dialog zurückgeben AWT, Swing, JavaFX & SWT 13
R Wert von ScrollBar ausgeben AWT, Swing, JavaFX & SWT 7
R JTable - Boolean-Wert aus Zelle auslesen. AWT, Swing, JavaFX & SWT 9
G Setzen wert in JTextField AWT, Swing, JavaFX & SWT 11
H JList: Mit ausgewähltem Wert weiterarbeiten AWT, Swing, JavaFX & SWT 16
E x wert von einem vorhandenen punkt abziehen? AWT, Swing, JavaFX & SWT 3
B Wert einer JCombobox in einer JTable setzen AWT, Swing, JavaFX & SWT 2
H Den wert aus einem Text field holen AWT, Swing, JavaFX & SWT 5
R JTable valueChanged() {wert an GUI} AWT, Swing, JavaFX & SWT 5
R wert aus editable JComboBox holen 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

Ähnliche Java Themen

Neue Themen


Oben