我目前正在使用帶有行標題和列標題(也是JComponents)的JScrollPane(包括JComponent)處理一個SWING框架。當鼠標懸停在JComponent或這兩個標題之一上時,鼠標滾輪會引發滾動。如何禁用JScrollPane標題中鼠標滾輪的滾動?
我想要做的是當鼠標懸停在列標題上時禁用滾動,但我無法在JScrollPane實例中找到直接方式,也無法在JComponent中找到它。 有關信息,我看了一下這些來源:
謝謝你在前進,如果你有辦法做到這一點。
我目前正在使用帶有行標題和列標題(也是JComponents)的JScrollPane(包括JComponent)處理一個SWING框架。當鼠標懸停在JComponent或這兩個標題之一上時,鼠標滾輪會引發滾動。如何禁用JScrollPane標題中鼠標滾輪的滾動?
我想要做的是當鼠標懸停在列標題上時禁用滾動,但我無法在JScrollPane實例中找到直接方式,也無法在JComponent中找到它。 有關信息,我看了一下這些來源:
謝謝你在前進,如果你有辦法做到這一點。
我認爲你需要一個2步驟的解決方案。
禁用/啓用對整個組件的滾動輪,在使用JScrollPane
setWheelScrollingEnabled()
。
要有選擇地執行此操作,請在JScrollPane上執行addMouseListener()
以捕獲所有鼠標移動(包括進入和離開),以便您知道指針何時位於標題中。每當這種情況發生變化時,您可以打開或關閉滾動。
yourJTable.getTableHeader().setReorderingAllowed(false);
應該工作,嘗試一下。
好吧,我測試了一下:實際上,自定義的MouseListener應該被添加到用於標頭(而不是JScrollPane)的JComponent中,但基本上它可以工作。非常感謝你。 – Sobe 2009-11-26 13:28:17
優秀!感謝您爲我瘋狂而瘋狂的想法玩天竺鼠。我很高興看到它的工作。 :) – 2009-11-26 15:27:34