Ich bin auf der Suche nach einer Möglichkeit, Beispieltext in ein Swing-JTextField einzufügen und grau auszublenden. Der Beispieltext sollte dann verschwinden, sobald etwas in dieses Textfeld eingegeben wird. Etwas, was ähnlich wie stackoverflow ist, wenn ein Benutzer eine Frage mit dem Titelfeld posten.
Ich würde es gerne sehen, wenn es bereits eine erweiterte Implementierung von JTextField wäre, so dass ich es einfach als einfachen Ersatz einfügen kann. Alles von Swingx würde funktionieren. Ich denke, wenn es keinen einfachen Weg gibt, dies zu tun, wird meine Option wahrscheinlich sein, die paint-Methode von JTextField zu überschreiben, etwas auf diese Weise zu tun.
Danke
Die Klasse Texteingabeaufforderung bietet die erforderliche Funktionalität, ohne ein benutzerdefiniertes JTextField zu verwenden.
Wenn Sie externe Libraries verwenden können, haben die Swing-Komponenten von Jide-Software das, wonach Sie suchen; Es heißt LabeledTextField ( javadoc ) und ist Teil des JIDE Common Layer (Open Source Project) ) - was frei ist. Es macht was mklmnn vorgeschlagen hat.
Wie wäre es, das Textfeld mit Standardtext zu initialisieren und ihm einen Fokus-Listener zu geben, so dass bei der Fokussierung, wenn der Text .equals der Standardtext ist, selectAll () auf dem JTextField aufgerufen wird.
Fügen Sie anstelle eines Überschreibens einen Wert in das Feld ein und fügen Sie ein KeyListener
hinzu, das den Wert bei der Registrierung eines Schlüsselstrichs entfernen würde. Vielleicht muss es auch den Vordergrund wechseln.
Sie könnten dies in Ihre eigene benutzerdefinierte JTextField
-Klasse einfügen, die den Standardtext in einem Konstruktor verwenden würde.
Mach es so:
Definieren Sie die Zeichenfolge mit dem ursprünglichen Text, den Sie mögen, und richten Sie Ihre TextField ein:
%Vor%Fügen Sie Ihrem TextField einen Fokus-Listener hinzu, der den gesamten Inhalt des TextFields auswählt, wenn dieser noch den Anfangswert hat. Alles, was Sie eingeben können, ersetzt den gesamten Inhalt, da er ausgewählt ist.
%Vor%Tags und Links java swing jtextfield