Verzögerung à la Tooltip bei mouseEntered

Status
Nicht offen für weitere Antworten.

Wolfgang Lenhard

Bekanntes Mitglied
Hi,
ich stehe gerade auf dem Schlauch: Ich möchte für die Buttons einer Anwendung nicht nur Tooltips anzeigen, sondern nachdem die Maus eine gewisse Zeit über dem Button geruht hat, soll schließlich auch eine Audioerklärung starten. Ich habe allerdings keine vernünftige Idee, wie die Verzögerung am Besten zu realisieren ist. Das Audio soll nicht einfach nur verzögert wiedergegeben werden, da sich für die Wiedergabe der Zeiger noch über dem Button befinden soll. Wie prüft man denn am schlausten bei einem MouseEvent, ob sich die Maus nach einer gewissen Latenzzeit noch über dem Button befindet? Wie macht das ein Tooltip?

Viele Grüße und vielen Dank,
Wolfgang

P.S.: Sollte man das über mouseEvent.getComponent() abfangen und prüfen, ob sich x- und y-koordinate des Mauszeigers noch über der Komponente befinden, oder geht es auch einfacher?
 
Zuletzt bearbeitet:

Verjigorm

Top Contributor
Maus drüber -> flag setzen
Maus weg -> flag zurücksetzen

Wenn Maus drüber -> Starte Thread, warte x ms, schaue ob flag immer noch gesetzt
Ja -> Spiele Audio
Nein -> Ende :)
 

Wolfgang Lenhard

Bekanntes Mitglied
Ah, ok! Vielleicht ist das wirklich ein praktikabler Ansatz. Ich denke, ich mache ein Singelton, damit der Code-Wildwuchs nicht zu sehr zunimmt. Danke!
 

Ebenius

Top Contributor
Nur als Ergänzung: An der Stelle bietet sich eigentlich der javax.swing.Timer anstatt eines Threads an.

Ebenius
 

Verjigorm

Top Contributor
Gibt es irgendwo ne Übersucht Thread vs Timer?
Grad bissl gegoogelt aber nix berauschendes gefunden.
Ich kann mir nie merken, wann und wieso man einen Timer benutzen soltle :)
 

Ebenius

Top Contributor
Swing Timer (javax.swing.Timer) benutzt man, wenn billige GUI-Änderungen verzögert oder wiederholt GUI-Inhalte ausführen möchte. Der Action Listener wird vom EDT aufgerufen. Klassischer Anwendungsfall wäre: [HIGHLIGHT=Java]final String[] waitTexts = { "Hold on .", "Hold on ..", "Hold on ..." };
final JLabel waitLabel = new JLabel(waitTexts[0]);
new javax.swing.Timer(500, new ActionListener() {

int textIndex = 0;

@Override
public void actionPerformed(ActionEvent e) {
waitLabel.setText(waitTexts[++textIndex % waitTexts.length]);
}
}).start();[/HIGHLIGHT]
Ebenius
 

Verjigorm

Top Contributor
Also ich spare mir quasi das invokeLater, welches ich in einem Thread benutzen würde um GUI-Elemente aus dem Thread raus zu verändern? :)
 

Wolfgang Lenhard

Bekanntes Mitglied
Vielen Dank für den Hinweis auf die Timer-Klasse, die wirklich einen Blick wert ist.

Zur Singleton-Problematik: Ich sehe hier ehrlich gesagt keine Alternative. Ansonsten könnte es sein, dass mehrere Erklärungen gleichzeitig abgespielt werden. In einer Singleton-Klasse lässt sich das prima handhaben: Entweder wird ein laufender Sound abgebrochen, wenn ein neuer gestartet werden soll, oder es wird kein neuer gestartet, falls gerade noch einer läuft. Ist ja im Grunde das gleiche wie bei den Tooltips: Da ist stets nur einer sichtbar.
Design-Fragen sind in diesem Fall für mich offen gesagt eher nebensächlich, da der Anwender nicht die Schönheit des Codes sondern die Handhabbarkeit des Programms bewertet.
 

Wildcard

Top Contributor
Na für mich hört sich das nach Support für Menschen mit zB Sehbehinderung an und da würde ich nicht das Rad neu erfinden.
 

Wolfgang Lenhard

Bekanntes Mitglied
Ach so. Ja, das wäre ein gutes Beispiel. Im konkretenb Fall geht es um Software für Kinder in der Schuleingangsphase und für leistungsschwache Kinder in der Grundschule, die noch nicht unbedingt lesen können. Es ist ein Programm zur Therapie von Dyskalkulie.
 

Wildcard

Top Contributor
Nun, ich weiß nicht ob da ganz spezielle Anforderungen gegeben sind, aber durch Java Accessibility besteht eben schon die Integration an den Accessibility Layer des Betriebssystems (Screenreader und der Gleichen).
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J JavaFX Tooltip Verzögerung beim ersten Anzeigen AWT, Swing, JavaFX & SWT 4
hdi Problem mit ToolTip: Aussehen/Verzögerung AWT, Swing, JavaFX & SWT 7
L JavaFX Verzögerung beim Laden von Daten AWT, Swing, JavaFX & SWT 6
S Verzögerung zwischen Cursorbewegung einbauen AWT, Swing, JavaFX & SWT 1
E Swing Verzögerung beim Hinzufügen / Ändern von Swingkomponenten AWT, Swing, JavaFX & SWT 3
F Verzögerung bei der ersten Anzeige AWT, Swing, JavaFX & SWT 6
J Verzögerung bei Änderungen der Anzeige abwarten AWT, Swing, JavaFX & SWT 5
P Swing Verzögerung von repaint() umgehen AWT, Swing, JavaFX & SWT 15
T Swing Tooltip-Delay funktioniert nicht immer. AWT, Swing, JavaFX & SWT 1
M JavaFX JAVAFX TreeItem mit Tooltip versehen AWT, Swing, JavaFX & SWT 4
M JavaFX Tooltip bei setOnMouseMoved Verständnisproblem AWT, Swing, JavaFX & SWT 6
V JFreeChart: Tooltip auf Knopfdruck anzeigen AWT, Swing, JavaFX & SWT 2
M Datenbanksätze in ToolTip laden AWT, Swing, JavaFX & SWT 4
Tom299 JavaFX Tooltip verbuggt? AWT, Swing, JavaFX & SWT 1
J JTabbedPane: table in new tab: tooltip benutzt die column-widths von table in erstem geöffneten tab AWT, Swing, JavaFX & SWT 17
P Image oder Icon auf Tooltip zeichnen AWT, Swing, JavaFX & SWT 4
P Vorteile von Tooltip nutzen (wird über allen anderen Objekten angezeigt) AWT, Swing, JavaFX & SWT 3
U drawLine mit Tooltip AWT, Swing, JavaFX & SWT 1
D Swing JCombobox - Tooltip Location ändern AWT, Swing, JavaFX & SWT 4
B JavaFX Tooltip auf ImageView AWT, Swing, JavaFX & SWT 6
U Tooltip Dauer setzen AWT, Swing, JavaFX & SWT 0
U ToolTip Größenänderung, passt sich erst beim zweiten Mal an AWT, Swing, JavaFX & SWT 6
F ToolTip mit Link zum anklicken AWT, Swing, JavaFX & SWT 2
S SWT: Drop-Down Menü-Einträge mit Tooltip hervorheben AWT, Swing, JavaFX & SWT 3
C ToolTip aktualisieren AWT, Swing, JavaFX & SWT 2
A SWT Tooltip soll nicht verschwinden, solange User mit Maus auf Control ist AWT, Swing, JavaFX & SWT 5
C Tooltip dynamisch setzen AWT, Swing, JavaFX & SWT 7
GianaSisters Swing jComboBox Tooltip funktioniert nicht AWT, Swing, JavaFX & SWT 17
6 ToolTip erzwingen AWT, Swing, JavaFX & SWT 6
R SWT Tooltip AWT, Swing, JavaFX & SWT 5
J jList, recht Maustast => Tooltip zu Element AWT, Swing, JavaFX & SWT 8
T Tooltip bei falscher Eingabe anzeigen AWT, Swing, JavaFX & SWT 2
P Tooltip "erzwingen" ? AWT, Swing, JavaFX & SWT 7
S Swing JTree in ScrollPane einen ToolTip geben AWT, Swing, JavaFX & SWT 2
Antoras Swing Tooltip permanet anzeigen AWT, Swing, JavaFX & SWT 5
G Tooltip anzeigen AWT, Swing, JavaFX & SWT 4
GilbertGrape scrollable Tooltip AWT, Swing, JavaFX & SWT 9
G Tooltip Text für ein Shape Objekt AWT, Swing, JavaFX & SWT 2
GilbertGrape JTable+Tooltip+Zeilenumbrüche AWT, Swing, JavaFX & SWT 7
M Tooltip anzeigen? AWT, Swing, JavaFX & SWT 3
J Anzeigedauer eines Tooltip? AWT, Swing, JavaFX & SWT 5
S Tooltip Frage AWT, Swing, JavaFX & SWT 3
G 'Spezieller' Tooltip, wenn JTable-Column zu schmal AWT, Swing, JavaFX & SWT 6
P JRE 6 -> ToolTip & mnemonic Anzeige AWT, Swing, JavaFX & SWT 4
G Tooltip Zeilenumbruch AWT, Swing, JavaFX & SWT 13
B ToolTip verändern / selbst gestalten AWT, Swing, JavaFX & SWT 3
F ToolTip auf Canvas AWT, Swing, JavaFX & SWT 2
S Tooltip auf Toolbar-Icon AWT, Swing, JavaFX & SWT 6
C Tooltip nur anzeigen, wenn JInternalFrame minimiert AWT, Swing, JavaFX & SWT 3
D Eigenes Tooltip AWT, Swing, JavaFX & SWT 5
M JTree: Tooltip wenn Text nicht vollständig angezeigt wird AWT, Swing, JavaFX & SWT 3
M Seltsames Verhalten Tooltip und JDialog AWT, Swing, JavaFX & SWT 8
I JTable, Tooltip, HTML AWT, Swing, JavaFX & SWT 2
S ToolTip an Mausposition anzeigen AWT, Swing, JavaFX & SWT 5
O Hintergrundfarbe beim ToolTip AWT, Swing, JavaFX & SWT 5
L JLabel als Tooltip AWT, Swing, JavaFX & SWT 3
G Tooltip aufpoppen lassen AWT, Swing, JavaFX & SWT 3
M Border in ToolTip AWT, Swing, JavaFX & SWT 5
F ToolTip über Line2D bzw. Rectangle2D AWT, Swing, JavaFX & SWT 5
R JTable: Jede Zelle mit eigenem ToolTip belegen AWT, Swing, JavaFX & SWT 5
G Tooltip sperrt MouseListener? AWT, Swing, JavaFX & SWT 6
V Tooltip Text auf Spaltenkopf (JTable) AWT, Swing, JavaFX & SWT 4
S Tooltip auf Kopf eine JTable? AWT, Swing, JavaFX & SWT 2
G ToolTip AWT, Swing, JavaFX & SWT 4
W Bei hinzufügen der Action verliert Button Text,Tooltip, etc AWT, Swing, JavaFX & SWT 5
S Tooltip mit Grafik AWT, Swing, JavaFX & SWT 2
N lightweight bei ToolTip AWT, Swing, JavaFX & SWT 2
kaory Variabler ToolTip-Text in JTable AWT, Swing, JavaFX & SWT 5
T ToolTip AWT, Swing, JavaFX & SWT 3
R ToolTip länger aufrecht erhalten AWT, Swing, JavaFX & SWT 3
S ToolTip erweitern bei Swing (Mehrzeilig) AWT, Swing, JavaFX & SWT 2
M Tooltip / neues Fenster AWT, Swing, JavaFX & SWT 6
F Swing AutoScroll on MouseEntered... AWT, Swing, JavaFX & SWT 6
C Swing MouseEntered(?) für jeden Node im JTree AWT, Swing, JavaFX & SWT 4
C mouseEntered() AWT, Swing, JavaFX & SWT 4
M JInternalFrame mouseEntered/mouseExited AWT, Swing, JavaFX & SWT 8
C Text in JTextArea bei mouseEntered() updaten AWT, Swing, JavaFX & SWT 2
S Tabellenzelle bei MouseEntered AWT, Swing, JavaFX & SWT 5
U MouseEntered verweissensitiv AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben