Wie deaktivieren in einem JScrollPane Header von Mausrad?
-
05-07-2019 - |
Frage
Zur Zeit arbeite ich an einem Schwenkrahmen mit einer JScrollPane (einschließlich einem JComponent) mit einem Zeilenkopf und der Spaltenkopf (die auch JComponents sind). Wenn die Maus über das JComponent oder eines dieser 2-Header ist, Scrollen provoziert Mausrad.
Was ich tun möchte, ist zu deaktivieren Sie diese Scrollen, wenn die Maus über den Spaltenkopf ist , aber ich kann eine direkte Art und Weise noch in JScrollPane Beispiel noch in JComponent nicht finden. Für Informationen, hatte ich einen Blick auf diesen Quellen:
Vielen Dank im Voraus, wenn Sie eine Möglichkeit haben, das zu tun.
Lösung
Ich glaube, Sie brauchen eine 2-Stufen-Lösung.
-
So deaktivieren / aktivieren Sie das Scroll-Rad für die gesamte Komponente, die Verwendung
setWheelScrollingEnabled()
auf demJScrollPane
. -
diese selektiv zu tun, tun
addMouseListener()
auf der JScrollPane alle Mausbewegungen zu fangen (einschließlich Ein- und Ausgänge), damit Sie wissen, wenn der Zeiger im Header ist. Jedes Mal, wenn sich dies ändert, können Sie drehen Scrollen ein- oder ausschalten.
Andere Tipps
yourJTable.getTableHeader().setReorderingAllowed(false);
sollte funktionieren, probieren Sie es aus.