java - How to scroll with wheel while dragging in JTable and JScrollPane -
i using scala.swing, solution java swing applicable scala.swing. therefore open question java swing question.
i have jtable transferhandler in jscrollpane. usually, table can scroll mouse wheel motion. while dragging, however, scroll pane not move mouse wheel.
the user can scroll moving cursor top or bottom of pane(auto scroll), auto scroll slow, want provide usual mouse functionality.
i tried capture mouse wheel event in jtable. when not dragging, receives mousewheelmove event, while dragging, receives nothing. guess mouse wheel event delivered related transferhandler, not jtable.
how detect mouse wheel motion while dragging? other method welcome, far aim achieved.
it seems (at least on os x), wheel events buffered , dispatched after dnd gesture complete. here try:
import javax.swing._ val d = array.fill(1000)(array[anyref]((math.random * 1000).toint.tostring)) val t = new jtable(d, array[anyref]("a")) { override def processmousewheelevent(e: java.awt.event.mousewheelevent): unit = { println(s"wheel: ${e.getid}") super.processmousewheelevent(e) } def enableeventsp(e: long): unit = enableevents(e) } t.setdragenabled(true) t.enableeventsp(java.awt.awtevent.mouse_wheel_event_mask) val f = new jframe f.getcontentpane.add(new jscrollpane(t), java.awt.borderlayout.center) f.pack() f.setvisible(true) when scroll wheel while dragging , release mouse, wheel events delivered.
you may want override autoscroll behaviour of jtable make faster, guess. done in droptarget far can see. found this example.
Comments
Post a Comment