在 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 中区分拖动和选择的主要内容,如果未能解决你的问题,请参考以下文章

java中区分大小写吗???

perl 脚本来搜索 java 源代码中区分大小写的文件名

是否有一个 Eclipse 插件可以让您在多个 Subversion 修订中区分单个 Java 方法?

Eclipse 或 Notepad++ 中区分大小写的字符串替换

Spark 中区分大小写的连接

在firebase中区分普通用户和管理员的最佳方法是啥? [复制]