在 Java 的 JTextArea 中区分拖动和选择
Posted
技术标签:
【中文标题】在 Java 的 JTextArea 中区分拖动和选择【英文标题】:differentiating dragging and selecting in Java's JTextArea 【发布时间】:2011-10-11 03:47:07 【问题描述】:我的 Java 应用程序有几个JTextAreas
,用户可以四处移动。我通过向其添加鼠标运动拖动侦听器来实现这一点。
public void mouseDragged(MouseEvent e)
int deltaX = e.getXOnScreen() - screenX;
int deltaY = e.getYOnScreen() - screenY;
setLocation(myX + deltaX, myY + deltaY);
当用户想要在JTextArea
中选择文本以及何时想要拖动它时,我遇到了问题。有什么想法吗?
【问题讨论】:
【参考方案1】:我会使用修饰符,例如 control e.isControlDown()
,或其他鼠标按钮来拖动组件。
【讨论】:
这可能是唯一不会惹恼用户的方法。 Rocky 和 StanislavL 的方法不会让用户通过拖动鼠标来选择完整的文本。【参考方案2】:您可能想要处理第一个鼠标按下,检查是否选择了文本。如果鼠标指针在文本上,则将其设置为将其识别为拖动的状态。
【讨论】:
【参考方案3】:使用 viewToModel() 获取按下点的插入符号位置。检查插入符号的位置是否在 getSelectionStart() 和 getSelectionEnd() 之间。如果它在选定区域中,则开始拖动。
【讨论】:
以上是关于在 Java 的 JTextArea 中区分拖动和选择的主要内容,如果未能解决你的问题,请参考以下文章
是否有一个 Eclipse 插件可以让您在多个 Subversion 修订中区分单个 Java 方法?