【发布时间】:2013-12-06 15:39:31
【问题描述】:
背景:我在我的(大量)自定义 JTextPane 子类中使用自定义 AWT D&D。换句话说,我使用pane.setDragEnabled(false) 禁用了 Swing 的 D&D,并使用了自己的 DragSource、DragGestureListener 等。
问题:禁用Swing的D&D时JTextPane默认选择行为如下:
- 使用鼠标选择一些文本
- 鼠标在选定区域内按下以开始拖动
期望:选择不会丢失。 实际:鼠标按下时,选择立即丢失,我没有机会开始拖动操作,因为现在没有任何东西可以拖动。
我已将其部分追溯到 BasicTextUI$DragListener,因为这是调用窗格的 getDragEnabled() 方法的类,但 BasicTestUI 似乎对文本组件的选择没有太大作用。所以,我仍然不完全清楚选择被清除的位置,但我需要找到它,这样我才能消除这种行为。
我采用了一种技巧,其中涉及从克拉监听器设置持久高光,因此即使选择丢失,高光仍将保留,我的拖动可以与之交互。我对此不满意,它还有其他副作用。
非常感谢您的任何指点。
【问题讨论】:
标签: java swing drag-and-drop jtextpane jtextcomponent