Горизонтальная прокрутка и ошибка TextField

Я создал CustomTextField который прокручивается влево, когда я набираю текст, который превышает ширину TextField для которого используется HorizonalFieldManager Но теперь проблема в том, что если я щелкну правой кнопкой мыши и прокрутлю ее это продолжается до неадекватной длины но не останавливается до последнего слова, которое я печатаю В чем здесь проблема?? Это ошибка

Мне просто нужно, чтобы отключить горизонтальную прокрутку, когда она достигает последнего слова Он должен иметь возможность прокручиваться только между началом и концом последнего слова в слове

Проверьте код

import net.rim.device.api.ui.Color;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FocusChangeListener;
import net.rim.device.api.ui.Graphics;
import net.rim.device.api.ui.Manager;
import net.rim.device.api.ui.XYEdges;
import net.rim.device.api.ui.XYRect;
import net.rim.device.api.ui.component.BasicEditField;
import net.rim.device.api.ui.container.HorizontalFieldManager;
import net.rim.device.api.ui.container.VerticalFieldManager;
import net.rim.device.api.ui.decor.Border;
import net.rim.device.api.ui.decor.BorderFactory;


public class CustomTextField extends VerticalFieldManager {
    private int textWidth=0;
    private int textHeight=0;
    private BasicEditField basicEditField;
    private HorizontalFieldManager hfm;
    //Border border;

    public CustomTextField(int width,int height) {
        super();
        textWidth=width;
        textHeight=height;
        //border=BorderFactory.createSimpleBorder(new XYEdges(1, 1, 1, 1)); 


        hfm=new HorizontalFieldManager(Manager.HORIZONTAL_SCROLL){
            protected void sublayout(int maxWidth, int maxHeight) {
                super.sublayout(maxWidth, maxHeight);
                setExtent(textWidth, textHeight);
            }
        };  
        basicEditField=new BasicEditField("","",200,BasicEditField.NO_NEWLINE);
        //basicEditField.setBorder(border);

        hfm.add(basicEditField);
        add(hfm);
    }


    protected void sublayout(int maxWidth, int maxHeight) {
        super.sublayout(textWidth, textHeight);
        setExtent(textWidth, textHeight);

    }


    protected void paint(Graphics graphics) {
        super.paint(graphics);
        graphics.setColor(Color.BLACK);
        graphics.drawRect(0,0, textWidth, textHeight);
    }

}

, я инициализировал его как

 CustomTextField textField=new CustomTextField(200, 20);
            add(textField);

Я чувствую необходимость прокрутки (функция прокрутки) для HorizontalFieldManager.. ..но пока не придумал решение Помогите пожалуйста

10
задан Nate 20 May 2012 в 09:53
поделиться