AWT StringBuffer macht nicht, was ich erwarte

Sumpfbauer

Neues Mitglied
Guten Tag,

nachdem ich verzweifelt mehrere Stunden gegoogelt, aber nichts gefunden habe, vielleicht auch, weil ich nicht weiss, nach was genau ich suchen muss, und dieses Problem in ähnlicher Weise nun schon zum zweiten Mal aufgetreten ist, habe ich den Schritt in dieses Forum gewagt. ;(

Kurze Erklärung um was es drum herum von diesem Codeschnipsel geht: Es ist ein GUI, welches mit JButton einen HexZiffernBlock darstellt. Auf diesem Ziffernblock kann per Tastendruck oder Maus in ein seperates JLabel geschrieben werden. Das JLabel soll die eingegebene Hexzahl wie auch den berechneten Dezimalwert darstellen. Der HexZiffernBlock erstellt bei jedem entsprechenden Aufruf einen eigens dafür definierten Event, der dann mit folgender Methode bearbeitet wird. Das Eventzeugs klappt alles bestens und macht was es muss. Dies ist also nicht meine Sorge. :D

MEINE SORGE: folgende Methode funktioniert beim ersten Aufruf tadellos, beim zweiten Aufruf wird der StringBuffer jedoch nicht, wie ich erwarte, neu erstellt, sondern derjenige genommen, der beim ersten Durchgang verwendet wurde. Das StringBuffer-Objekt leeren, löschen oder was auch immer funktioniert nicht. Es mit einem String oder einem StringBuilder versuchen funktioniert ebenfalls nicht. Das Resultat ist jedes Mal dasselbe:

Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "(HEX) 6 == (DEZIMAL) 6A"

erste Eingabe
zweite Eingabe

... logisch, da dieser String nicht in eine Dezimalzahl geparst werden kann. :(

Aber um Himmelswillen. Sage mir bitte jemand, was ich anderes machen muss!! Ich selbst weiss es nicht. :bahnhof:

Die einzige Vermutung die ich habe, ist, das es etwas mit Multithreading zu tun haben könnte, aber weder bin ich bewandert in diesem Gebiet, noch überzeugt es mich selbst.

Java:
	/*
	 * @Override
	 * Implementiert das Interface IntegerValueListener
	 * geplant ist: Der Text vom JLabel "output" soll mit dem über den Event erhaltenen Ereignis-Code
	 * (clear, backspace, Ziffern 1-16) zu "kombinieren", d.h. Zahlen anfügen, letzte Ziffer löschen,
	 * oder ganzer Text löschen.
	 */
	public void integerValueGenerated(IntegerValueEvent event) {
		
		// hier sollte jedesmal! ein neuer StringBuffer erstellt werden (geht nicht)
		StringBuffer text = new StringBuffer();
		
		// den vorhandenen Text vom JLabel holen und anfügen
		text.append(output.getText());
		
		// eventKey Abfrage
		if (event.getKey() == IntegerValueEvent.HEXNUMBER) {
			Integer digit = event.getKeyNumber();
			// Hex-Ziffer anfügen
			text.append(Integer.toHexString(digit).toUpperCase());
		} else if (event.getKey() == IntegerValueEvent.BACKSPACE) {
			try {
				// letzte Ziffer löschen, ...
				text.deleteCharAt(text.length()-1);
			} catch (Exception e) {
				// ... falls vorhanden!
			}
		} else if (event.getKey() == IntegerValueEvent.CLEAR) {
			// alles löschen
			text.delete(0, text.length()-1);
		}
		
		// String Buffer zusammensetzen
		StringBuffer textToSee = new StringBuffer("(HEX) ");
		textToSee.append(text);
		textToSee.append("  ==  (DEZIMAL) ");
		textToSee.append(Integer.parseInt(text.toString(), 16));

		// JLabel Text neu setzen
		output.setText(textToSee.toString());
	}
 

Nardian

Bekanntes Mitglied
hmm.. da ich nich den gesamten code habe, kann ich nur sagen wie ichs "testen" würde...
[java=11] StringBuffer text = new StringBuffer();
[/code]
nachdem einfach mal ein
Java:
System.out.println(text);
machen. damit sollte schnell klar sein ob das wirklich neu erstellt wird (sorry, aber ich kann mir nicht vorstellen, dass das nicht neu erstellt wird) oder ob eben von output.getText() ein "falscher" String gesetzt wird.

des weiteren verstehe ich nicht ganz warum du weiter unten einen weiteren stringbuilder brauchst

und statt dem
[java=30]text.delete(0, text.length()-1);[/code]
kannst du direkt
Java:
text.setLength(0);
machen...

sag bescheid, wenn was geholfen hat / ob du auf den fehler draufgekommen bist

greetz
 

Sumpfbauer

Neues Mitglied
Problem gelöst, danke für die Hilfe und die Tipps. Habe ein Déja Vu gesehen, wo keines war.


Problem war hier:

[JAVA=14]text.append(output.getText())[/code]

da fühlt man sich im nachhinein einfach nur dumm ;( Lektion gelernt: nächstes Mal gehe ich den Code vorher nochmals Schritt für Schritt durch, bevor ich anfange zu heulen. :oops:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Doppelte eintraege im Stringbuffer löschen Allgemeine Java-Themen 4
127.0.0.1 StringBuffer leere Zeile löschen Allgemeine Java-Themen 8
K Immutable View auf StringBuffer? Allgemeine Java-Themen 13
T String vs StringBuilder vs StringBuffer Allgemeine Java-Themen 8
V Stringbuffer/builder leeren Allgemeine Java-Themen 2
neurox Stringbuffer -> MimeBodyPart Allgemeine Java-Themen 5
P StringBuffer, StringBuilder und StringWriter Allgemeine Java-Themen 4
T Performance String-Operationen und StringBuffer (1.4und 1.5) Allgemeine Java-Themen 18
G Zeilenweise aus einem StringBuffer lesen Allgemeine Java-Themen 4
B Inhalt von StringBuffer löschen Allgemeine Java-Themen 14
D Inputstream aus StringBuffer Allgemeine Java-Themen 3
M Regex und StringBuffer: Problem mit TAB-Codierung Allgemeine Java-Themen 3
A StringBuffer manipulation Klausur Allgemeine Java-Themen 2
T Kleine Verständnisfrage zu Stringbuffer Allgemeine Java-Themen 2
berserkerdq2 Jemand einen Tipp wie man ein Javafx-Hintergrund "dynamisch" macht Allgemeine Java-Themen 3
N Division macht Probleme Allgemeine Java-Themen 14
berserkerdq2 IJVM, ich tue auf meinen Stack 100 und 120 rein, danach subtrahiere ich, macht die Maschine 100-120 oder 120-100? Allgemeine Java-Themen 8
OnDemand Anzeigen was eine Applikation macht Allgemeine Java-Themen 1
H Swing HashMap zu Tabelle macht mir Probleme Allgemeine Java-Themen 4
M 4 Gewinnt KI macht nicht, was sie soll.. Allgemeine Java-Themen 1
P Eclipse Projekt anlegen macht Problem Allgemeine Java-Themen 1
WetWer Was bedeutet/macht ein Exit-Code Allgemeine Java-Themen 1
O OOP Wie macht man das am besten OO? Allgemeine Java-Themen 8
Thallius Macht das Sinn? Allgemeine Java-Themen 30
F Java Native/Shared Library (.so) laden macht Probleme Allgemeine Java-Themen 3
X Was macht folgender Code!? Allgemeine Java-Themen 6
J Doppelte Buchstaben löschen - letztes Wort macht er nicht Allgemeine Java-Themen 2
J if else Anweisung macht nicht was es soll. Wieso? Allgemeine Java-Themen 10
M Google App Engine macht Probleme Allgemeine Java-Themen 4
GilbertGrape Warum macht man "if(true)" Allgemeine Java-Themen 18
C Klassen Was macht diese Java-Mathe-Klasse? Allgemeine Java-Themen 2
S Erste Schritte Exception beendet Schleife nicht - Methode macht trotz throw weiter? Allgemeine Java-Themen 9
S Javadoc 3d einbinden macht probleme Allgemeine Java-Themen 10
B Unix-Timestamp > Date macht Probleme. Allgemeine Java-Themen 3
T Ausdruck mit pdfBox macht Probleme Allgemeine Java-Themen 2
B jar File macht probleme wegen einer Methode! Allgemeine Java-Themen 5
alderwaran jaxb xsd schema, min/maxoccurs macht was? Allgemeine Java-Themen 7
E Timer class macht einfach garnichts :/ Allgemeine Java-Themen 6
N Vokabelprogramm - Wer macht mit? Allgemeine Java-Themen 58
S Anschauen was der Compiler macht..? Allgemeine Java-Themen 5
bj99 ImageIO.write() macht Probleme Allgemeine Java-Themen 7
I Was macht static { ... } ? Allgemeine Java-Themen 8
N Für welche Art von Berechnungen macht JCUDA Sinn? Allgemeine Java-Themen 12
P JMF macht mich verrückt Allgemeine Java-Themen 3
R PDF Formular mit JPod ausfüllen macht Probleme Allgemeine Java-Themen 4
G Wie kriegt Klasse2 die Info, was Klassse1 gerade "macht Allgemeine Java-Themen 7
Escorter was macht createHorizontalGlue() Allgemeine Java-Themen 2
T Serialisierung: Wie macht RMI das so schnell? Allgemeine Java-Themen 14
J Was macht dieser Code? Allgemeine Java-Themen 13
S Was macht der Java-Verifier? Allgemeine Java-Themen 4
T Problem, warum macht der das so(finde kein titel.) Allgemeine Java-Themen 3
I Irre Website-Wie macht man sowas? Allgemeine Java-Themen 6
U if Abfrage macht etwas falsch Allgemeine Java-Themen 2
G javadoc macht probleme Allgemeine Java-Themen 2
A equals() macht nicht, was es soll Allgemeine Java-Themen 4
B Vergleichen von arrays macht Probleme Allgemeine Java-Themen 2
M JBoss macht Probleme Allgemeine Java-Themen 6
P Wie macht Sun Gewinn mit Java? Allgemeine Java-Themen 3
Maximum '.' in String ersetzen macht Schwierigkeiten Allgemeine Java-Themen 2
T Klassen samt Methoden aus Jar-Archiv laden macht Problem Allgemeine Java-Themen 9
Zrebna Wieso sollte man Null-Prüfungen nicht mit Optional-Objekten nutzen? Allgemeine Java-Themen 13
kodela Textfeld nicht rechteckig Allgemeine Java-Themen 10
G Doppelklick auf Javaprogramm klapt nicht Allgemeine Java-Themen 1
W Timer terminiert nicht Allgemeine Java-Themen 5
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
W Überflüssige Deklaration vermeiden...war da nicht mal was? Allgemeine Java-Themen 3
N lwjgl kann textureSampler nicht finden Allgemeine Java-Themen 4
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
T .Jar kann man nicht ausführen Allgemeine Java-Themen 18
P JDK nicht installiert in Net Object Fusion Allgemeine Java-Themen 7
D Image bewegt sich nicht nach Klicken auf Button Allgemeine Java-Themen 15
N Regex schlägt nicht an Allgemeine Java-Themen 10
Y Wieso krieg ich die Unit Tests nicht hin Allgemeine Java-Themen 55
D Erste Schritte Mp3 Datei kann nicht von der Festplatte geöffnet werden - mit ChatGPT erstellt Allgemeine Java-Themen 7
G Popup wird nicht sichtbar Allgemeine Java-Themen 9
8u3631984 Funktions Parameter mit Lombok "NonNull" annotieren wird in Jacococ Testcoverage nicht herausgefiltert Allgemeine Java-Themen 3
kodela String kann nicht zu Pfad konvertiert werden Allgemeine Java-Themen 16
M Apache Proxy Weiterleitung auf Tomcat funktioniert nicht wie gewünscht Allgemeine Java-Themen 1
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
OnDemand ApacheCommon FTP Client zuckt nicht Allgemeine Java-Themen 3
T JavaPoet - (noch) nicht existente Typen Allgemeine Java-Themen 2
E Es ist nicht möglich, eine Batch-Anweisung auszuführen. Allgemeine Java-Themen 9
C Was passt hier nicht bei der Calendar-Class Allgemeine Java-Themen 2
T Testing JUnit5: try ... catch arbeitet nicht sauber Allgemeine Java-Themen 6
W While Schleife funktioniert nicht ganz Allgemeine Java-Themen 4
OnDemand MemoryLeak nicht zu finden Allgemeine Java-Themen 26
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
H do-while Schleife funktioniert nicht wie ich es möchte Allgemeine Java-Themen 7
ERlK JDA Code funktioniert nicht? Allgemeine Java-Themen 4
OnDemand Ram Freigabe erfolgt nicht nach Prozessende Allgemeine Java-Themen 18
OnDemand XML desializing Attribute bringt nicht erwartetes Ergebnis Allgemeine Java-Themen 16
T ImageIcon wird nicht angezeigt Allgemeine Java-Themen 6
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
stormyark TikTakToe funktioniert nicht Allgemeine Java-Themen 10
N Warum wird die For Schleife nicht betreten Allgemeine Java-Themen 4
Tiago1234 Hauptklasse konnte nicht gefunden oder geladen werden Allgemeine Java-Themen 38
T Remove bei ArrayList funktioniert nicht Allgemeine Java-Themen 2
M Map<String,String>funktioniert nicht richtig Allgemeine Java-Themen 4
I "Neues" Lizenzmodell Oracle - JRE nicht mehr zur Redistribution freigegeben? Allgemeine Java-Themen 16

Ähnliche Java Themen

Neue Themen


Oben