我创建了一个 CustomTextField,当我输入的文本超出使用 HorizonalFieldManager 的 TextField 的宽度时,它会向左滚动但现在的问题是,如果我用鼠标右键单击并滚动它,它会继续不足的长度但并没有停止到最后一个字我输入这里有什么问题?它是一个错误
我只需要在到达最后一个单词时禁用 HorizontalScrolling 它应该能够在 word 中最后一个单词的开头和结尾之间滚动
查看代码
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 需要 Scroll(is Scrolling Function) ......但还没有想出解决方案请帮忙