JTextField => stop CellEditing

MariusMeier

Mitglied
Hallo zusammen

Wie kann ich ein JTextField, dass am editieren ist, stoppen um einen Wert hineinzuschreiben?
Idee:

Code:
 DefaultCellEditor editor = new DefaultCellEditor(tfZeroPointsByImag);
editor.stopCellEditing();

Funktioniert so aber nicht.... warum?

MFG Marius Meier
 
mh ? wenn du ein TextFeld anklickst, befindet es sich im EditierModus. Sprich du siehts den blinkenden Cursor :)
Ich will aber etwas ins TextField hineinschreiben. Dafür muss ich den Editier-Modus stoppen... wenn ich direkt die Methode textfield.setText("1") aufrufe schreibt er ins TextField "11".
 
Ich denke, dass dein setText() nur 2 mal aufgerufen wird.
Mach mal vor deinem setText einen System.out. Wenn der Text 2 mal ausgegeben wird, weißt du was los ist ^^
 
Nein mit System.out ergibt sich nur eine Ausgabe.... das ist ja das komische.....
Vielleicht sollte ich noch was erwähnen: Auf meinem Textfield ist folgende Code registiret:

Code:
tfZeroPointsByImag = new ObservableJTextField();
		tfZeroPointsByImag.setText("0");
		tfZeroPointsByImag.attach(new Observer() {
			public void update(Observable o, Object arg) {
				IFilter filter = null;
				if (arg instanceof IFilter) {
					filter = (IFilter) arg;
				}
				if((filter.getZeroPointsByImag() != 0 && tfZeroPointsByImagKE == null) || (tfZeroPointsByImagKE != null && Integer.valueOf(""+tfZeroPointsByImagKE.getKeyChar()) == filter.getZeroPointsByImag())) {
					
				   
				    
					tfZeroPointsByImag.setText(String.valueOf(filter.getZeroPointsByImag()));
					
				}
			}
		});
		ActiveFilter.getInstance().addObserver(tfZeroPointsByImag);
		
		tfZeroPointsByImag.addKeyListener(new KeyListener() {
			
			IFilter fil1 = ActiveFilter.getInstance();
			
			public void keyTyped(KeyEvent e) {
				tfZeroPointsByImagKE = e;
				try { 
					fil1.setZeroPointsByImag(Integer.parseInt("" + e.getKeyChar()));
				}
				
				catch(Exception excp) {
					System.out.println("tfZeroPointsByImag: Kein Integer");
				}
			}

			public void keyPressed(KeyEvent e) {
								
			}

			public void keyReleased(KeyEvent e) {

			}
			
		});

Das heisst, mein Texfield ist noch bei einem Observer angemeldet.... ergibt das auch noch Probleme?
 
Ja es funktioniert dann.... aber dass will ich eigentlich nicht ;) Folgendes:
Unser Programm ist eine Filterapplikation... wenn ich nun das Filtermodell abspeichere in eine txt-Datei und danach wieder lade, soll sich das JTextField mit den Werten, dass aus dem Model geladen wurde, einstellen. (Deswegen ein Observer)
Aber meiner Meinung nach ist das Problem auf seiten des Textfeldes... in meinem Model ist nämlich der Wert, der durch die Tastatur eingegeben wird, richtig, aber das Textfeld stellt es falsch dar.... Problem ist warscheindlich, dass das Textfeld nicht beschrieben werden kann wenn es im editier-Modus ist.... darum wollte ich es über den DefaultCellEditor abstellen und zum schreiben freigeben... und danach wieder den Cursor ins Textfeld setzen.... aber funktioniert nicht .... bzw. weiss nicht wie.
 
Hallo,

also wenn ich dich richtig verstanden habe, dann willst du, wenn das Textfeld den Focus hat und ein Buchstabe eingegeben wird, in einer Datei nachschauen ob es ein passendes Wort dazu gibt und wenn ja dieses dann in das Textfeld schreiben?

Ist das so richtig bei mir angekommen?

Grüße Oli
 
Zurück