我的Java应用程序有几个JTextAreas
用户可以移动。我通过向它添加鼠标移动拖动侦听器来实现此目的。
public void mouseDragged(MouseEvent e) {
int deltaX = e.getXOnScreen() - screenX;
int deltaY = e.getYOnScreen() - screenY;
setLocation(myX + deltaX, myY + deltaY);
}
当用户想要在JTextArea
中选择文字以及何时想要将其拖动时,我遇到了区分问题。有什么想法吗?
答案 0 :(得分:2)
我会使用修饰符,例如 control e.isControlDown()
或其他鼠标按钮来拖动组件。
答案 1 :(得分:1)
您可能希望处理第一个鼠标按下,检查文本是否被选中。如果鼠标指针位于文本上,则将其设置为一种状态,以将其标识为拖动。
答案 2 :(得分:1)
使用viewToModel()获取压点的插入位置。检查插入位置是否在getSelectionStart()和getSelectionEnd()之间。如果它在选定区域开始拖动。