Hallo
stehe gerede aufm Schlauch hab schon alles mögliche mit Timer und so durchprobiert, vielleicht kann mir ja jemand von Euch auf die Sprünge helfen:
Ich habe mehrere Buttons die verschiedene Bildervorschauen anzeigen sollen.
Ich brauch eine Funktion, die eine Methode erst aufruft nachdem diese mindestens 500ms auf einem Button verweilt hat, quasi wie die ToolTip-Funktion, bloß dass kein Tooltip angezeigt werden soll, sondern einfach eine Methode zum laden der Bilder aufgerufen wird.
Damit soll verhindert werden, dass nicht jedes mal wenn man mit der Maus schnell über die Buttons fährt das Bild geladen wird.
Das Event soll also komplett gelöscht werden, falls die Maus nicht mind. 500ms auf dem Button bleibt.
Bisher habe ich das:
schätze aber mein Ansatz ist falsch und irgendwie muss das anders laufen, bloß wie?
Bitte um Anregung.
Grüße Matthias
stehe gerede aufm Schlauch hab schon alles mögliche mit Timer und so durchprobiert, vielleicht kann mir ja jemand von Euch auf die Sprünge helfen:
Ich habe mehrere Buttons die verschiedene Bildervorschauen anzeigen sollen.
Ich brauch eine Funktion, die eine Methode erst aufruft nachdem diese mindestens 500ms auf einem Button verweilt hat, quasi wie die ToolTip-Funktion, bloß dass kein Tooltip angezeigt werden soll, sondern einfach eine Methode zum laden der Bilder aufgerufen wird.
Damit soll verhindert werden, dass nicht jedes mal wenn man mit der Maus schnell über die Buttons fährt das Bild geladen wird.
Das Event soll also komplett gelöscht werden, falls die Maus nicht mind. 500ms auf dem Button bleibt.
Bisher habe ich das:
Code:
import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JButton; public class PreviewListener extends MouseAdapter{ boolean workInProgress; JButton lastButton; private PreviewListener(){ } public void mouseEntered(MouseEvent e) { JButton button = (JButton)e.getSource(); wait(500); if(stillTheSameButton(button)){ preloadImage(); } } private boolean stillTheSameButton(JButton button){ boolean result = false; if(lastButton == null){ lastButton = button; }else if(button.equals(lastButton)){ result = true; } return result; } private void preloadImage() { //load Images; } }
Bitte um Anregung.
Grüße Matthias
Comment