Hallo
Jeder kennt es oder hat es zumindest schon mal gesehen..
In einem Textfeld soll drin stehen was rein soll (z.B. Name) und in dem Moment wenn ein Buchstabe gedrückt wird, soll der Text verschwinden und man sollte seine Daten eingeben können d.h. Name soll verschwinden und Schrift soll wieder schwarz statt grau werden.
Ich habe mir eine dazu eine abgeleitete Klasse erstellt mit Keylistener (s. Quellcode). Mein Problem ist, das der Keylistener nicht "anspringt".
Wo liegt mein Fehler? der Falsche Listener??
Vielen Dank im Vorraus
Quellcode:
[HIGHLIGHT="Java"]package view;
import java.awt.Color;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.TextEvent;
import java.awt.event.TextListener;
import javax.swing.JTextField;
public class PrefilledTextfield extends JTextField implements KeyListener, TextListener{
String filler;
public PrefilledTextfield(String filler){
this.filler = filler;
this.setText(filler);
this.setForeground(Color.LIGHT_GRAY);
this.setToolTipText("Hier bitte "+filler+" eingeben.");
}
/*@Override
public String getText() {
if(super.getText().equals(filler)){
return "";
}else{
return super.getText();
}
}*/
public String getMyText(){
if(getText().equals(filler)){
return "x";
}else{
return getText();
}
}
@Override
public void keyPressed(KeyEvent arg0) {
System.out.println("KeyPressed "+getText());
if(getText().equals(filler)){
setText("");
this.setForeground(Color.BLACK);
}
}
@Override
public void keyReleased(KeyEvent arg0) {
System.out.println("KeyReleased "+getText());
}
@Override
public void keyTyped(KeyEvent arg0) {
System.out.println("KeyTyped "+getText());
}
@Override
public void textValueChanged(TextEvent e) {
System.out.println("Textvalue "+getText());
}
}[/HIGHLIGHT]
Jeder kennt es oder hat es zumindest schon mal gesehen..
In einem Textfeld soll drin stehen was rein soll (z.B. Name) und in dem Moment wenn ein Buchstabe gedrückt wird, soll der Text verschwinden und man sollte seine Daten eingeben können d.h. Name soll verschwinden und Schrift soll wieder schwarz statt grau werden.
Ich habe mir eine dazu eine abgeleitete Klasse erstellt mit Keylistener (s. Quellcode). Mein Problem ist, das der Keylistener nicht "anspringt".
Wo liegt mein Fehler? der Falsche Listener??
Vielen Dank im Vorraus
Quellcode:
[HIGHLIGHT="Java"]package view;
import java.awt.Color;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.TextEvent;
import java.awt.event.TextListener;
import javax.swing.JTextField;
public class PrefilledTextfield extends JTextField implements KeyListener, TextListener{
String filler;
public PrefilledTextfield(String filler){
this.filler = filler;
this.setText(filler);
this.setForeground(Color.LIGHT_GRAY);
this.setToolTipText("Hier bitte "+filler+" eingeben.");
}
/*@Override
public String getText() {
if(super.getText().equals(filler)){
return "";
}else{
return super.getText();
}
}*/
public String getMyText(){
if(getText().equals(filler)){
return "x";
}else{
return getText();
}
}
@Override
public void keyPressed(KeyEvent arg0) {
System.out.println("KeyPressed "+getText());
if(getText().equals(filler)){
setText("");
this.setForeground(Color.BLACK);
}
}
@Override
public void keyReleased(KeyEvent arg0) {
System.out.println("KeyReleased "+getText());
}
@Override
public void keyTyped(KeyEvent arg0) {
System.out.println("KeyTyped "+getText());
}
@Override
public void textValueChanged(TextEvent e) {
System.out.println("Textvalue "+getText());
}
}[/HIGHLIGHT]
Anhänge
Zuletzt bearbeitet von einem Moderator: