Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface Blackberry-带大文本的单行基本字段_User Interface_Blackberry_Custom Controls - Fatal编程技术网

User interface Blackberry-带大文本的单行基本字段

User interface Blackberry-带大文本的单行基本字段,user-interface,blackberry,custom-controls,User Interface,Blackberry,Custom Controls,我使用位图创建了一个带有边框的自定义BasicEditField。现在,在键入文本时,它会穿过BasicEditField的边框 这是我的密码 class customEditField1 extends EditField { Bitmap mBorder = null; customEditField1(Bitmap borderBitmap) { mBorder = borderBitmap; } protected vo

我使用位图创建了一个带有边框的自定义BasicEditField。现在,在键入文本时,它会穿过
BasicEditField
的边框

这是我的密码

class customEditField1 extends EditField
{
     Bitmap mBorder = null;
     customEditField1(Bitmap borderBitmap) 
     {
        mBorder = borderBitmap;
     }
     protected void paint(Graphics graphics) 
     {
         graphics.drawBitmap(0, 0, mBorder.getWidth(),mBorder.getHeight(), mBorder, 0, 0);
         super.paint(graphics);
     }
}

我想创建一个BasicEditField,它应该隐藏以前输入的文本并显示新输入的文本,键入的文本应该在边框中。它不应该取决于字符数限制。我想在文本和边框之间应用填充

您可以将BasicEditField放入HorizontalFieldManager。
不要忘记将边界位图绘制从BasicEditField移动到HorizontalFieldManager

class ScrollEdit extends HorizontalFieldManager {
    Bitmap mBorder = null;
    public BasicEditField mEdit = null;

    public ScrollEdit(Bitmap border) {
        super(HORIZONTAL_SCROLL | NO_HORIZONTAL_SCROLLBAR);
        mBorder = border;
        mEdit = new EditField(BasicEditField.NO_NEWLINE);
        add(mEdit);
    }

    protected void paint(Graphics graphics) {
        graphics.drawBitmap(0, 0, mBorder.getWidth(), mBorder.getHeight(),
                mBorder, 0, 0);
        super.paint(graphics);
    }

}
但是,您必须使用layout和setExtent来管理大小并正确编辑。我的建议是先不带边框的试试


谈到换行,请在管理器中将填充设置为BasicEditField或在边框位图中添加空白…

您可以将BasicEditField放入HorizontalFieldManager。
不要忘记将边界位图绘制从BasicEditField移动到HorizontalFieldManager

class ScrollEdit extends HorizontalFieldManager {
    Bitmap mBorder = null;
    public BasicEditField mEdit = null;

    public ScrollEdit(Bitmap border) {
        super(HORIZONTAL_SCROLL | NO_HORIZONTAL_SCROLLBAR);
        mBorder = border;
        mEdit = new EditField(BasicEditField.NO_NEWLINE);
        add(mEdit);
    }

    protected void paint(Graphics graphics) {
        graphics.drawBitmap(0, 0, mBorder.getWidth(), mBorder.getHeight(),
                mBorder, 0, 0);
        super.paint(graphics);
    }

}
但是,您必须使用layout和setExtent来管理大小并正确编辑。我的建议是先不带边框的试试


谈到换行,请在manager中将填充设置为BasicEditField或在border bitmap中添加空白…

我不知道如何将border bitmap从BasicEditField移动到HorizontalFieldManager?请查看提供的代码,它已经存在于paint()中,我刚刚淹没了你的注意力。@MaxGontar我们如何设置背景图像或EditTextField?@Coder如果我们不能设置,我们必须自己绘制。我不知道如何将边界位图从BasicEditField移动到HorizontalFieldManager?请看提供的代码,它已经存在于paint()中,我刚才把你的注意力淹没了。@MaxGontar我们如何设置背景图像或EditTextField?@Coder afaik我们不能设置它,我们必须自己绘制它。