Usuwanie tekstu z JTextField za pomocą DocumentListener

0

Witam, stworzyłem TextField, w którym podałem tekst jaki ma się wyświetlić na wstępie. Chciałbym żeby po wciśnięciu jakiegokolwiek klawisza (akcji w tym polu) ten tekst się usuwał. Użyłem DocumentListenera ale teraz gdy np. wcisnę "a" na klawiaturze to się TextField czyści, a to "a" się nie pokazuje. Jak to zrobić, żeby po wyczyszczeniu TextFielda od razu pokazał się ten znak?

		loginText = new JTextField("Wpisz login", 15);
		loginText.getDocument().addDocumentListener(new MyDocumentListener());
private class MyDocumentListener implements DocumentListener{
		public void changedUpdate(DocumentEvent e) {
			// TODO Auto-generated method stub
		
		}
		public void insertUpdate(DocumentEvent e) {
			// TODO Auto-generated method stub
			clearText(e);

		}
		public void removeUpdate(DocumentEvent e) {
			// TODO Auto-generated method stub
		}
		public void clearText(DocumentEvent e){
			SwingUtilities.invokeLater(new Runnable(){
				public void run(){
					if(notEdited) { // jesli TextField nie jest edytowany po raz pierwszy
						loginText.setText("");
						notEdited = false;
					}
				}
			});
		}	
	}
1

Masz instrukcję

loginText.setText("");

i dziwisz się, że pole tekstowe jest puste?
Użyj może KeyListenera, w KeyEvent masz informację o tym co użytkownik wcisnął i możesz ją wykorzystać.

0

Dzięki, trochę poczytałem o KeyListenerze i pomogło

private class KeyHandler implements KeyListener{
		public void keyPressed(KeyEvent e) {
		}
		public void keyReleased(KeyEvent e) {
			updateText(e);
		}
		public void keyTyped(KeyEvent e) {
			if(notEdited)
				loginText.setText("");
		}
		public void updateText(KeyEvent e){
			if(notEdited) {
			String text = Character.toString(e.getKeyChar());
			loginText.setText(text);
			notEdited = false;
			}
		}
	}

1 użytkowników online, w tym zalogowanych: 0, gości: 1