我的选择侦听器遇到了一些问题,目前我已经独立尝试了从 TOP 到 BOTTOM 和 BOTTOM 到 TOP(鼠标移动)的文本选择,但是这些试验不能一起工作,即一个SelectionListener 是双向的......
private void setupSelectionListener() {
this.contentValues.addSelectionListener(new SelectionListener() {
@Override
public void widgetSelected(SelectionEvent event) {
StyledText text = (StyledText)event.widget;
int x = event.x;
int y = event.y;
//Mouse Drag Listener here??? - Detects Right
//FOR TOP TO BOTTOM SELECTION
text.setSelection(event.x);
int beginPosition = event.x;
int beginByte = beginPosition / 3;
int endPosition = event.y;
int endByte = endPosition / 3;
setSelection(beginByte, endByte);
//Mouse Drag Listener here??? - Detects Left
//FOR BOTTOM TO TOP SELECTION
text.setSelection(event.y);
int beginPosition = event.y;
int beginByte = beginPosition / 3;
int endPosition = event.x;
int endByte = endPosition / 3;
setSelection(beginByte, endByte);
}
@Override
public void widgetDefaultSelected(SelectionEvent e) {
// Does nothing...
}
});
所以要么我需要一个鼠标拖动监听器,就像我在评论中所说的那样,要么需要一个比较 event.x 和 event.y 的条件语句
我试图在选择侦听器中添加一个拖动检测侦听器,但这会破坏事件坐标选择的格式。
任何帮助将不胜感激。