0

現在、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 を比較する条件文が必要です。

選択リスナー内にドラッグ検出リスナーを追加しようとしましたが、これによりイベント座標選択の形式が乱れます。

どんな助けでも大歓迎です。

4

1 に答える 1

0

イベントが発生したソースウィジェットがスタイルテキストオブジェクトの場合、この選択はリスナーが正しくなくても自動的に行われます。つまり、マウスを押したままドラッグすると、コンテンツが自動的に選択されます。

于 2012-07-24T13:11:45.290 に答える