Tooltip bei falscher Eingabe anzeigen

  • Themenstarter Themenstarter t2E8J9
  • Beginndatum Beginndatum
T

t2E8J9

Gast
Ist es möglich eine falsche Eingabe ähnlich wie ein Tooltip anzuzeigen?

In meiner GUI gibt es ein JTextField, indem die Länge eines Raumes angegeben werden soll. wird hier ein falscher Wert (z.b. "34m") eingetragen, so färbt sich mein JTextField rot ein.
Sollte der Anwender den Fehler nicht erkennen, so wäre ein Tooltip mit der Nachricht: "Fehler - keine Einheiten angeben" hilfreich.
Das Problem bei dem Tooltip ist, dass dieses nur dann angezeigt wird, wenn der Mauszeiger längere Zeit über das JTextField liegt. In meinem konkreten Fall, sollte das Tooltip sofort beim erkennen der falschen Eingabe (also dann wenn sich das JTextField rot einfärbt) aufklappen.
 
Du könntest folgendes schreiben:

Java:
try {
			Robot myRobot = new Robot();
			myRobot.keyPress(KeyEvent.VK_CONTROL);
			myRobot.keyPress(KeyEvent.VK_F1);
			myRobot.keyRelease(KeyEvent.VK_F1);
			myRobot.keyRelease(KeyEvent.VK_CONTROL);
		}
		catch(Exception e) {
			System.out.println("Error");
		}

Hintergrund:
Mit der Klasse Robot kannst du manuelle Eingaben simulieren.
Die Tastencombination Strg+F1 zeigt den ToolTip an.
 
Java:
	Robot myRobot = new Robot();
	myRobot.keyPress(KeyEvent.VK_CONTROL);
	myRobot.keyPress(KeyEvent.VK_F1);
	myRobot.keyRelease(KeyEvent.VK_F1);
	myRobot.keyRelease(KeyEvent.VK_CONTROL);


vielen dank für die info.
das funktioniert schon fast.
zum einen muss im keylistener noch die tasten VK_Control und VK_F1 ignoriert werden, ansonsten hängt das programm 😉.
zum anderen funktioniert die anzeige noch nicht ganz. das tooltip wird bei der ersten falschen eingabe eingeblendet, bei der derauffolgenden wieder ausgeblendet. ich nehme einmal an, das tooltip kann mit strg+f1 ein und ausgeblendet werden.
eine mögliche lösung wäre eine statische bool variable dann zu setzen, wenn eine falsche eingabe gemacht wurde und das tooltip nur dann anzuzeigen.

gibt es eine möglichkeit abzufragen, ob das tooltip gerade angezeigt wird? diese lösungsmöglichkeit würde ich bevorzugen.


Habe gestern noch eine andere Lösungsmöglichkeit gefunden: javax.swing.Popup
Leider erhalte ich hier immer JavaNullPointerExceptions.
 

Zurück
Oben