2009-11-26 167 views
1

我目前正在使用帶有行標題和列標題(也是JComponents)的JScrollPane(包括JComponent)處理一個SWING框架。當鼠標懸停在JComponent或這兩個標題之一上時,鼠標滾輪會引發滾動。如何禁用JScrollPane標題中鼠標滾輪的滾動?

我想要做的是當鼠標懸停在列標題上時禁用滾動,但我無法在JScrollPane實例中找到直接方式,也無法在JComponent中找到它。 有關信息,我看了一下這些來源:

謝謝你在前進,如果你有辦法做到這一點。

回答

3

我認爲你需要一個2步驟的解決方案。

  • 禁用/啓用對整個組件的滾動輪,在使用JScrollPanesetWheelScrollingEnabled()

  • 要有選擇地執行此操作,請在JScrollPane上執行addMouseListener()以捕獲所有鼠標移動(包括進入和離開),以便您知道指針何時位於標題中。每當這種情況發生變化時,您可以打開或關閉滾動。

+0

好吧,我測試了一下:實際上,自定義的MouseListener應該被添加到用於標頭(而不是JScrollPane)的JComponent中,但基本上它可以工作。非常感謝你。 – Sobe 2009-11-26 13:28:17

+0

優秀!感謝您爲我瘋狂而瘋狂的想法玩天竺鼠。我很高興看到它的工作。 :) – 2009-11-26 15:27:34

0

yourJTable.getTableHeader().setReorderingAllowed(false);

應該工作,嘗試一下。