区分 Java 的 JTextArea 中的拖动和选择

发布于 2024-11-25 12:47:08 字数 344 浏览 1 评论 0原文

我的 Java 应用程序有几个用户可以移动的 JTextArea。我通过向其添加鼠标运动拖动侦听器来实现此目的。

  public void mouseDragged(MouseEvent e) {
    int deltaX = e.getXOnScreen() - screenX;
    int deltaY = e.getYOnScreen() - screenY;

    setLocation(myX + deltaX, myY + deltaY);
  }

我在区分用户何时想要在 JTextArea 中选择文本以及何时想要拖动文本时遇到问题。有什么想法吗?

My Java application has several JTextAreas that the user can move around. I achieve this by adding a mouse motion drag listener to it.

  public void mouseDragged(MouseEvent e) {
    int deltaX = e.getXOnScreen() - screenX;
    int deltaY = e.getYOnScreen() - screenY;

    setLocation(myX + deltaX, myY + deltaY);
  }

I am having a problem differentiating when the user wants to select text within the JTextArea and when they want to drag it around. Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

幸福还没到 2024-12-02 12:47:08

我将使用修饰符,例如 control e.isControlDown() 或另一个鼠标按钮来拖动组件。

I would use a modifier, for example control e.isControlDown(), or another mouse button to drag the component.

顾忌 2024-12-02 12:47:08

您可能想要处理第一个鼠标按下的情况,检查文本是否被选中。如果鼠标指针位于文本上,则将其设置为将其识别为拖动的状态。

You may want to handle the first mouse down, check to see if text is selected. If the mouse pointer is on the text then set it to a state to identify it as a drag.

憧憬巴黎街头的黎明 2024-12-02 12:47:08

使用 viewToModel() 获取按下点的插入符位置。检查插入符位置是否在 getSelectionStart() 和 getSelectionEnd() 之间。如果它在选定区域中,则开始拖动。

Use viewToModel() to obtain caret position of pressed point. Check whether the caret position is between getSelectionStart() and getSelectionEnd(). If it's in selected region start drag.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文