GUI Label Werte ersetzen

G

guest4321

Gast
Hallo!
ich mache über ein Textfeld eine Eingabe, wenn diese Eingabe in dem Label vorhanden ist soll sie dort rein geschrieben werden.
Ich setze so den Text neu, also das komplette Label wird ersetzt durch den Buchstaben.
Wie bekomme ich es so hin, dass nur der einzelne buchstabe ersetzt wird?

Java:
String tF = textField.getText();
		for (int i = 0; i < word.length(); i++) {

			if (word.charAt(i) == a) {
				label.setText(hiddenWord.replaceAll(word , tF));
			}
 
C

Camino

Gast
Ich bin mir nicht ganz sicher, ob ich das richtig verstanden habe. In das Textfeld soll nur 1 Buchstabe eingetippt werden können. Und dann vergleichst du, ob dieser Buchstabe schon in dem Wort im Label drin enthalten ist. Wenn ja, ersetzt du das Wort im Label durch diesen Buchstaben?

Dazu könntest du einen DocumentListener an das Textfeld hinzufügen, welches darauf reagiert, wenn etwas dort eingegeben wird. Und dann dort durch die Zeichen des Wortes im Label gehen und schauen, ob der Buchstabe dort vorkommt. Hast du ja eigentlich auch schon in deiner for-Schleife. Musst halt nur das Zeichen aus dem Textfeld holen. (bei dir steht da gerade noch == a)
Und dann mit setText() im Label den Text reinschreiben, wenn in der Schleife ein Treffer erzielt wurde.
 
G

guest4321

Gast
Schonmal danke für deine Antwort!
Könntest du mir die Abfrage mit dem Listener einmal zeigen?
 
G

guest4321

Gast
Achso und falls es dir weiter hilft
Java:
	char a = tF.charAt(0);
das ist a, sorry hatte vergessen es mit rein zu nehmen.
 
T

TryToHelp

Gast
Das Blau markierte ist ein Link, den kann man klicken und kommt, bei diesem von mir geposten Link auf ein Topic in diesem Forum, was eine ziemlich ähnliche Problematik behandelt ;-) dahinter habe ich eine ergänzung, eine zusätzliche codezeile geschrieben, um die du es erweitern musst, um den inhalt auf dein Label zu schreiben, das geht nämlich mit setText ;-)

Java:
String []orginal={"h","a","l","l","o"}; // einmal das array mit deinem orginal wort
String []display={"_","_","_","_","_"}; // und dein array mit den unterstrichen
//***************************
String buchstabe= textField.getText(); //NEUE ANPASSUNG wert aus deinem Textfeld
//***************************
for (int i=0;i<orginal.length;i++){ // durch dein wort gehen
   if (orginal[i].equals(buchstabe){ // schauen ob an der stelle der buchstabe vorkommt
      diplay[i]=buchstabe; // in der anzeige den buchstaben austauschen
   }
}
//***************************
label.setText(Array.toString(diplay)); // NEUE ANPASSUNG Anzeigen in deinem label
//***************************
 
T

TryToHelp

Gast
...
Java:
String []orginal={"h","a","l","l","o"}; // einmal das array mit deinem orginal wort
String []display={"_","_","_","_","_"}; // und dein array mit den unterstrichen
//***************************
String buchstabe= textField.getText(); //NEUE ANPASSUNG wert aus deinem Textfeld
//***************************
for (int i=0;i<orginal.length;i++){ // durch dein wort gehen
   if (orginal[i].equals(buchstabe){ // schauen ob an der stelle der buchstabe vorkommt
      diplay[i]=buchstabe; // in der anzeige den buchstaben austauschen
   }
}
//***************************
label.setText(Array.toString(diplay)); // NEUE ANPASSUNG Anzeigen in deinem label
//***************************
Schau mal den Queltext an (Zeile 12) display, weil orginal ist ja dein orginales/gesuchtes wort, also wenn es galgenmänchen werden soll, wonach es aussieht, und display, wie ich fand ein deutlicher name, ist zum anzeigen gedacht, der hat deine unterstriche anstelle von buchstaben, außer es wurde der richtige buchstabe eingegeben ;-)
 
G

guest4321

Gast
Das wort ist nich fest, dass heißt da könnte auch was anderes drinne stehen außer hallo, das wort müsste in einem array gespeichert werden und die buchstaben dann ersetzt werden durch Striche, also funktioniert das so nicht.
 
C

Camino

Gast
Probier doch erst mal, ob du es so hinbekommst, mit einem fest eingetragenen Wort. Danach kannst du es doch so umbauen, dass auch andere Wörter dort vorkommen können.
 
T

TryToHelp

Gast
Verstehe dein PROBLEM nicht, du kannst ja was anderes in den String schreiben, daran scheitert es nicht, das ist ja nur für dein BEISPIEL in der HOFFNUNG du VERSTEHSTdann wie es FUNKTIONIERT was aber nicht der Fall ist

Das mit dem ersetzen wurde dir glaube ich schon mehrmals erklärt, aber ich kann es ja nochmal machen ;-)
Java:
//GLOBALE VARIABLEN
String []orginal;
String []display;

//FUNKTION EINLESEN
String wort=textField.getText(); //einlesen deines zu lösenden wortes
this.orginal=new String[word.length()]; //array der größe erstellen
this.display=new new String[word.length()];  //array der größe erstellen
for (int i = 0; i < word.length(); i++) { //durch dein Wort gehen
   orginal[i]=""+word.charAt(i); // in orginal speichern
   display[i]="_"; / /"_" speichern
}


//FUNKTION LÖSEN
String buchstabe= textField.getText(); //NEUE ANPASSUNG wert aus deinem Textfeld
for (int i=0;i<orginal.length;i++){ // durch dein wort gehen
   if (this.orginal[i].equals(buchstabe){ // schauen ob an der stelle der buchstabe vorkommt
      this.diplay[i]=buchstabe; // in der anzeige den buchstaben austauschen
   }
}
label.setText(Array.toString(diplay)); // NEUE ANPASSUNG Anzeigen in deinem label

Du scheinst heufiger deine Eigenen Threads zu vergessen oder?
http://www.java-forum.org/java-basics-anfaenger-themen/144292-string-ersetzen.html
http://www.java-forum.org/java-basics-anfaenger-themen/144117-hangman-gui.html
http://www.java-forum.org/java-basics-anfaenger-themen/144183-gui-jlabel-ersetzen.html
Vielleicht schaffst du es jetzt mal ohne gleich wieder einen neuen Thread zu eröffnen
 
G

guest4321

Gast
Habe es jetzt so gemacht wie du. Speicherst du die Werte irgendwo? also das die Buchstaben im Array stehen bleiben?
 
T

TryToHelp

Gast
wenn du, so wie ich es beschrieben habe, die beiden arrays global gemacht hast, werden die Arrays und somit dein gelöstes wort gespeichert

nach der eingabe a sieht es so aus _ a _ _ _
nach einer weiteren eingabe z.B. o sieht es so aus _ a _ _ o

Die eingegebenen buchstaben an sich werden nicht gespeichert, aber wenn man das wollte könnte man das auch machen, interessanter sind aber wenn dan die falsch eingegebenen buchstaben, wie z.B. das w _ a _ _ o ist weiter deine ausgabe, aber ein fehlversuch und du könntest dir das speichern
 
G

guest4321

Gast
Java:
 if (orginal[i].equals(buchstabe){ // schauen ob an der stelle der buchstabe vorkommt
      diplay[i]=buchstabe; // in der anzeige den buchstaben austauschen
   }

wenn ich das so mache wird mir immr nur der Buchstabe rein geschrieben, er bleibt nicht drinne stehen
 
T

TryToHelp

Gast
ist dein Array
Code:
diplay
nur LOCAL in der FUNKTION DEKLARIERT oder GLOBAL in der KLASSE?
Wenn LOKAL dann ist das klar, da du sie immer wieder überschreibst ;-)
 
G

guest4321

Gast
Ich zeige dir mal weas ich gemacht habe

Funktion um String in Array zu packen

Java:
	public String[] stringArray(String s) {
		String[] stringArray = new String[s.length()];
		for (int i = 0; i < stringArray.length; i++) {
			stringArray[i] = s.substring(i, i + 1);
		}
		return stringArray;
	}

Funktion ersetzen
Java:
	public String[] replaceArrayElement(String s) {
		String[] stringArray = new String[s.length()];
		for (int i = 0; i < s.length(); i++) {
			stringArray[i] = "" + s.charAt(i);
			stringArray[i] = "_";
		}
		return stringArray;
	}


und dann rufe ich die hier auf mit den GLOBALEN variablen

Java:
		original = strA.stringArray(hiddenWord);
		display = replace.replaceArrayElement(hiddenWord); 
		for (int i = 0; i < original.length; i++) {
			if (original[i].equals(buchstabe)) {
				display[i] = buchstabe;
			}
		}
		label.setText(Arrays.toString(display));
 
T

TryToHelp

Gast
Java:
        original = strA.stringArray(hiddenWord); 
        display = replace.replaceArrayElement(hiddenWord); // hiermit überschreibst du es dir immer wieder wenn die funktion des buchstabens eingeben aufgerufen wird, das ist wohl nicht sin und zweck oder??
        for (int i = 0; i < original.length; i++) {
            if (original[i].equals(buchstabe)) {
                display[i] = buchstabe;
            }
        }
        label.setText(Arrays.toString(display));
 
B

bone2

Gast
welches Array soll denn toString? orginal=

display, deshalb steht es dahinter in Klammern.
Arrays ist groß geschrieben und unterstrichen, das ist ein Link klick den an. Das ist eine Helferklasse für den Umgang mit arrays und kein variablenname.
Code:
Arrays.toString(deinArray)
wandelt dein Array in einen schön lesbaren String um.
 
G

guest4321

Gast
TryToHelp, das macht nicht so wirklich sinn, nur was soll ich denn sonst als parameter reingeben?
ich stehe etwas aufn schlauch, sorry
 
B

bone2

Gast
du musst dir doch irgendwo merken wie weit du schon warst und dann nicht mehr vom ursrungswort ausgehen sondern vom aktualisierten

sowas in die richtung, keine ahnung wie das programm ausßen rum aussieht

Java:
//global einmal
        original = strA.stringArray(hiddenWord); 
        label.setText(hiddenWord);

        // bei jeder eingabe
        display = replace.replaceArrayElement(label.getText());
        for (int i = 0; i < original.length; i++) {
            if (original[i].equals(buchstabe)) {
                display[i] = buchstabe;
            }
        }
        label.setText(Arrays.toString(display));
 
G

guest4321

Gast
Mit deinem Beispiel ist es genauso iwe vorher, dass immer nur der Buchstabe ersetzt wird und dann wieder weg ist
 
B

bone2

Gast
lies doch bitte mal...

Java:
        original = strA.stringArray(hiddenWord); 
        label.setText(hiddenWord);

darf nur ein einziges mal aufgerufen werden, wenn das programm startet und dann nie wieder (außer du änderst das hiddenword)

nach der eingabe eines buchstaben wird nur
Java:
        display = replace.replaceArrayElement(label.getText());
        for (int i = 0; i < original.length; i++) {
            if (original[i].equals(buchstabe)) {
                display[i] = buchstabe;
            }
        }
        label.setText(Arrays.toString(display));
aufgerufen
 
T

TryToHelp

Gast
...
Java:
//****************
//**Zur Verdeutlichung Eingefügter Code
//****************
public class galgenmaenchen{
//GLOBALE VARIABLEN
private String []orginal;
private String []display;

//****************
//**Zur Verdeutlichung Eingefügter Code
//****************
public void getNewWordFromTextField{
   //FUNKTION EINLESEN
   String wort=textField.getText(); //einlesen deines zu lösenden wortes
   this.orginal=new String[word.length()]; //array der größe erstellen
   this.display=new new String[word.length()];  //array der größe erstellen
   for (int i = 0; i < word.length(); i++) { //durch dein Wort gehen
      orginal[i]=""+word.charAt(i); // in orginal speichern
      display[i]="_"; / /"_" speichern
   }
}

//****************
//**Zur Verdeutlichung Eingefügter Code
//****************
public void loesenDurchEingabeInTextFeld{
   //FUNKTION LÖSEN
   String buchstabe= textField.getText(); //NEUE ANPASSUNG wert aus deinem Textfeld
   for (int i=0;i<orginal.length;i++){ // durch dein wort gehen
      if (this.orginal[i].equals(buchstabe){ // schauen ob an der stelle der buchstabe vorkommt
         this.diplay[i]=buchstabe; // in der anzeige den buchstaben austauschen
      }
   }
   label.setText(Array.toString(diplay)); // NEUE ANPASSUNG Anzeigen in deinem label
}
...

Die Funktion
Code:
getNewWordFromTextField
rufst du beim Button Click des Buttons
Code:
neuesWortVomTextfeld
auf und die Funktion
Code:
loesenDurchEingabeInTextFeld
rufst du beim Button Click des Buttons
Code:
testeObDerBuchstabeDrinnenVorkommt
auf.

Ich hoffe du verstehst es jetzt ein bischen mehr, aber alzusicher wäre ich mir nicht :-(
 
T

TryToHelp

Gast
[EDIT]Hab da doch klat die
Code:
()
nach den Funktionsnamen vergessen[/EDIT]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Werte von 2 Klassen austauschen/ Bild im Label ändern Java Basics - Anfänger-Themen 12
rafi072001 Assoziation zwischen Musiker und Label Java Basics - Anfänger-Themen 1
J Hilfe beim Label animieren Java Basics - Anfänger-Themen 1
J Java FX - Label aktualisieren Java Basics - Anfänger-Themen 1
M Java GUI label ändert sich erst zum Schluss Java Basics - Anfänger-Themen 4
S Counter Label Button Java Basics - Anfänger-Themen 4
J JavaFX Label,Button zur Laufzeit Java Basics - Anfänger-Themen 30
M Mit KeyListener Farbe von Label ändern Java Basics - Anfänger-Themen 13
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
J Einen Buttonklick in Label anzeigen Java Basics - Anfänger-Themen 6
J Erste Schritte Mit repaint() ist Label nicht sichtbar Java Basics - Anfänger-Themen 15
V Label-Problem Java Basics - Anfänger-Themen 4
H Stringanzeige in einem Label Java Basics - Anfänger-Themen 2
J JavaFX -> SocketIO -> Thread -> Update Label Java Basics - Anfänger-Themen 13
KeVoZ_ Label auf JFrame willkürlich Positionieren Java Basics - Anfänger-Themen 2
N Dynamisch erzeugtes Label wird nicht angezeigt, TextField schon Java Basics - Anfänger-Themen 1
M Ausgabe eines Arrays auf Label (Javafx) Java Basics - Anfänger-Themen 4
V Die die aktuelle Größe zusätzlich in einem Label angezeigt wird Java Basics - Anfänger-Themen 11
T Erste Schritte 2 Codes zusammen fügen / Label in JFrame Java Basics - Anfänger-Themen 1
S Java Label hat komischen text Java Basics - Anfänger-Themen 4
S Label Wert zuweisen Java Basics - Anfänger-Themen 8
F Erste Schritte Label Text vor Methodenaufruf setzen Java Basics - Anfänger-Themen 17
W Klassen Fehler bei public void setLabelText(JLabel label, String text) Java Basics - Anfänger-Themen 11
W Erste Schritte Timer soll jede Sekunde Label aktualisieren Java Basics - Anfänger-Themen 5
S Label in Vordergrund Java Basics - Anfänger-Themen 4
D String aus txt in label für Tabelle einfügen Java Basics - Anfänger-Themen 8
W GUI Label, ComboBox Java Basics - Anfänger-Themen 4
M BufferedReader => TextField/Label Java Basics - Anfänger-Themen 8
M Ausgabe einer ArrayList auf einem Label Java Basics - Anfänger-Themen 4
W Java label nicht ansprechbar Java Basics - Anfänger-Themen 7
T Icon eines Label speichern Java Basics - Anfänger-Themen 9
J Uhr:Label aktuallisieren Java Basics - Anfänger-Themen 7
J Zeichen für Durchmesser Ø in Label darstellen Java Basics - Anfänger-Themen 15
J Panel + Label anzeigen - Ich kriege es nicht hin Java Basics - Anfänger-Themen 3
C Panel und Label überdecken sich Java Basics - Anfänger-Themen 2
L Label + MouseListener Java Basics - Anfänger-Themen 12
P Label Array in mouseEntered vergleichen Java Basics - Anfänger-Themen 4
J JPG in einem Label einfügen und anzeigen lassen Java Basics - Anfänger-Themen 2
C Aktueller Wert von einem JSlider auf ein Label Java Basics - Anfänger-Themen 2
J "label.setText" funktioniert nicht Java Basics - Anfänger-Themen 9
C JSlider und JRadioButton auf Label anzeigen? Java Basics - Anfänger-Themen 10
R Text vom Label ändern Java Basics - Anfänger-Themen 14
D Vererbung ProcessBar mit einem Label Java Basics - Anfänger-Themen 4
W Anordnung von Label und Button Java Basics - Anfänger-Themen 2
S NullPointerException beim Checkbox-Label-Array mit nextLine() Java Basics - Anfänger-Themen 6
Z Label verschwindet in JScrollPane Java Basics - Anfänger-Themen 7
J Elegante Art mehrere Label mit einem icon zu setzen Java Basics - Anfänger-Themen 13
S Warum zeigt das Label nichts an??? Java Basics - Anfänger-Themen 9
N Text in Label ändern Java Basics - Anfänger-Themen 11
C Label ändert ändert sich nicht Java Basics - Anfänger-Themen 4
S In das Label eines anderen Threads schreiben Java Basics - Anfänger-Themen 2
M Label verschwindet? Java Basics - Anfänger-Themen 3
P Label erstellen und positionieren Java Basics - Anfänger-Themen 5
A TextField + Label = ? Java Basics - Anfänger-Themen 7
Stillmatic1985 Label in einem Frame zentrieren Java Basics - Anfänger-Themen 4
K Button Label lesen Java Basics - Anfänger-Themen 4
Z integer auf Label ausgeben Java Basics - Anfänger-Themen 12
C verschiedene Label auf Knopfdruck abrufen Java Basics - Anfänger-Themen 4
L Label wird nicht richtig dargestellt Java Basics - Anfänger-Themen 2
G Textfeld und Label in einem Tab? Anfänger braucht Hilfe Java Basics - Anfänger-Themen 3
G Hilfe: Label soll ganz nach oben! Java Basics - Anfänger-Themen 6
S Bild im Label ändern Java Basics - Anfänger-Themen 2
T Sonderzeichen in label Java Basics - Anfänger-Themen 4
S break Label als Spungmarken vorher definieren Java Basics - Anfänger-Themen 4
K Wieder Label anzeigen lassen ? Java Basics - Anfänger-Themen 3
K Ergebnisse auf einem Label anzeigen lassen ? Java Basics - Anfänger-Themen 20
P Label nicht bei Progressbar zu sehen Java Basics - Anfänger-Themen 8
K Schrift groesse in einem Label zeigen lassen ! Java Basics - Anfänger-Themen 2
D ImageIcon in Label Java Basics - Anfänger-Themen 7
A label update Java Basics - Anfänger-Themen 10
F Label Schriftfarbe Java Basics - Anfänger-Themen 4
H Text aus Textfeld per Actionlistener in Label ausgeben. Java Basics - Anfänger-Themen 6
M Label in die Mitte eines Swing Fensters Java Basics - Anfänger-Themen 2
N Überprüfen ob ein Label angeklickt wurde Java Basics - Anfänger-Themen 3
K Array im Label ausgeben ? Java Basics - Anfänger-Themen 10
T Label mehrzeilig? Java Basics - Anfänger-Themen 7
S Abfragen ob Label enabled ist . Java Basics - Anfänger-Themen 2
G Array Label Java Basics - Anfänger-Themen 6
S Von anderer Klasse auf Label zugreifen Java Basics - Anfänger-Themen 6
G Hintergrundbild mit Transparentem Label Java Basics - Anfänger-Themen 5
D "Ueber"-Klasse? / Label Array Probleme Java Basics - Anfänger-Themen 2
T per Button soll inhalt aus Tecxfield in Label übertragen wer Java Basics - Anfänger-Themen 5
H Drehen von Label Java Basics - Anfänger-Themen 2
D Automatische Label übertragung Java Basics - Anfänger-Themen 3
B Label wird ungewollt mehrmals erstellt Java Basics - Anfänger-Themen 16
J label.getSize() gibt 0 ? Java Basics - Anfänger-Themen 2
M Berechnung in Label ausgeben? Java Basics - Anfänger-Themen 3
G Zusatzinfos in einem Label ablegen Java Basics - Anfänger-Themen 10
B In einem Label "Zeilenumbruch" Java Basics - Anfänger-Themen 4
G ein Label FETT ung GROSS ausgeben Java Basics - Anfänger-Themen 4
V Auf Label schreiben Java Basics - Anfänger-Themen 3
J Index für ein Label Java Basics - Anfänger-Themen 8
M Text in Label per Button Java Basics - Anfänger-Themen 4
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 23
F 2x 16bit Werte zu einem 32bit und dann splitten mit 0xb Java Basics - Anfänger-Themen 1
ptcho Werte/Position nach dem Funktionsaufruf tauschen? Java Basics - Anfänger-Themen 1
K Warum sind Werte in den Feldern ? Java Basics - Anfänger-Themen 2
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben