BlackBerry - 滚动固定大小文本编辑,左侧和边框带有静态标签

发布于 2024-08-27 05:59:29 字数 76 浏览 11 评论 0原文

大家好,我是黑莓的新手,我想要一个可以滚动文本的文本字段,即水平方向大于首选宽度,还能够在文本绘制区域之外显示标签(例如在左侧)。请帮我。

Hello everyone I am new to blackberry and I want a textfield that scroll it's text i.e greater than the preferred width horizontally , also able to show label out side the text draw area ( e.g. on the left side). Please help me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

软糖 2024-09-03 05:59:29

这可以通过组合非滚动和滚动 Horizo​​ntalFieldManager 来实现。

试试这个代码:

class Scr extends MainScreen {
    public Scr() {
        HorizontalFieldManager fieldHolder = new HorizontalFieldManager(
                NO_HORIZONTAL_SCROLL | NO_HORIZONTAL_SCROLLBAR);
        fieldHolder.add(new LabelField("some label: "));
        HorizontalFieldManager editHolder = new HorizontalFieldManager(
                HORIZONTAL_SCROLL | HORIZONTAL_SCROLLBAR);
        editHolder.add(new TextField(TextField.NO_NEWLINE));
        fieldHolder.add(editHolder);
        add(fieldHolder);
    }
}

设置默认文本代码:

class Scr extends MainScreen {
    public Scr() {
        HorizontalFieldManager fieldHolder = new HorizontalFieldManager(
                NO_HORIZONTAL_SCROLL | NO_HORIZONTAL_SCROLLBAR);
        fieldHolder.add(new LabelField("some label: "));
        HorizontalFieldManager editHolder = new HorizontalFieldManager(
                HORIZONTAL_SCROLL | HORIZONTAL_SCROLLBAR);
        TextField textField = new TextField(TextField.NO_NEWLINE);      
        editHolder.add(textField);
        fieldHolder.add(editHolder);
        add(fieldHolder);

        // set some text then
        String text = "Lorem ipsum dolor sit amet, consectetuer"+
        " adipiscing elit, sed diam nonummy nibh euismod tincidunt"+
        " ut laoreet dolore magna aliquam erat volutpat.";
        textField.setText(text);
    }
}

以及基本上适用于 4.6/4.7 的东西:

class Scr extends MainScreen {
    public Scr() {
        String text = "Lorem ipsum dolor sit amet, consectetuer"+
        " adipiscing elit, sed diam nonummy nibh euismod tincidunt"+
        " ut laoreet dolore magna aliquam erat volutpat.";
        HorizontalFieldManager fieldHolder = new HorizontalFieldManager(
                NO_HORIZONTAL_SCROLL | NO_HORIZONTAL_SCROLLBAR);
        fieldHolder.add(new LabelField("some label: "));
        HorizontalFieldManager editHolder = new HorizontalFieldManager(
                HORIZONTAL_SCROLL | HORIZONTAL_SCROLLBAR);
        TextField textField = new TextField("",text,1024,TextField.NO_NEWLINE);
        editHolder.add(textField);
        fieldHolder.add(editHolder);
        add(fieldHolder);
    }
}

管理器边框

Border border = BorderFactory.createSimpleBorder(new XYEdges(4,4,4,4));
fieldHolder.setBorder(border);

固定大小管理器

class SizedHFM extends HorizontalFieldManager {
    int mWidth = 0;

    public SizedHFM(int width) {
        super(NO_HORIZONTAL_SCROLL | NO_HORIZONTAL_SCROLLBAR);
        mWidth = width;
    }

    protected void sublayout(int maxWidth, int maxHeight) {
        super.sublayout(mWidth, maxHeight);
        setExtent(mWidth, getPreferredHeight());
    }
}

使用示例:

class Scr extends MainScreen {
    public Scr() {
        String text = "Lorem ipsum dolor sit amet, consectetuer"
                + " adipiscing elit, sed diam nonummy nibh euismod tincidunt"
                + " ut laoreet dolore magna aliquam erat volutpat.";
        SizedHFM fieldHolder = new SizedHFM(200);
        Border border = BorderFactory
                .createSimpleBorder(new XYEdges(4, 4, 4, 4));
        fieldHolder.setBorder(border);
        fieldHolder.add(new LabelField("some label: "));
        HorizontalFieldManager editHolder = new HorizontalFieldManager(
                HORIZONTAL_SCROLL | HORIZONTAL_SCROLLBAR);
        TextField textField = new TextField("", text, 1024,
                TextField.NO_NEWLINE);
        editHolder.add(textField);
        fieldHolder.add(editHolder);
        add(fieldHolder);
    }
}

This may be achieved by combining non-scrolling and scrolling HorizontalFieldManagers.

Try this code:

class Scr extends MainScreen {
    public Scr() {
        HorizontalFieldManager fieldHolder = new HorizontalFieldManager(
                NO_HORIZONTAL_SCROLL | NO_HORIZONTAL_SCROLLBAR);
        fieldHolder.add(new LabelField("some label: "));
        HorizontalFieldManager editHolder = new HorizontalFieldManager(
                HORIZONTAL_SCROLL | HORIZONTAL_SCROLLBAR);
        editHolder.add(new TextField(TextField.NO_NEWLINE));
        fieldHolder.add(editHolder);
        add(fieldHolder);
    }
}

Setting default text code:

class Scr extends MainScreen {
    public Scr() {
        HorizontalFieldManager fieldHolder = new HorizontalFieldManager(
                NO_HORIZONTAL_SCROLL | NO_HORIZONTAL_SCROLLBAR);
        fieldHolder.add(new LabelField("some label: "));
        HorizontalFieldManager editHolder = new HorizontalFieldManager(
                HORIZONTAL_SCROLL | HORIZONTAL_SCROLLBAR);
        TextField textField = new TextField(TextField.NO_NEWLINE);      
        editHolder.add(textField);
        fieldHolder.add(editHolder);
        add(fieldHolder);

        // set some text then
        String text = "Lorem ipsum dolor sit amet, consectetuer"+
        " adipiscing elit, sed diam nonummy nibh euismod tincidunt"+
        " ut laoreet dolore magna aliquam erat volutpat.";
        textField.setText(text);
    }
}

And something which basically works on 4.6/4.7:

class Scr extends MainScreen {
    public Scr() {
        String text = "Lorem ipsum dolor sit amet, consectetuer"+
        " adipiscing elit, sed diam nonummy nibh euismod tincidunt"+
        " ut laoreet dolore magna aliquam erat volutpat.";
        HorizontalFieldManager fieldHolder = new HorizontalFieldManager(
                NO_HORIZONTAL_SCROLL | NO_HORIZONTAL_SCROLLBAR);
        fieldHolder.add(new LabelField("some label: "));
        HorizontalFieldManager editHolder = new HorizontalFieldManager(
                HORIZONTAL_SCROLL | HORIZONTAL_SCROLLBAR);
        TextField textField = new TextField("",text,1024,TextField.NO_NEWLINE);
        editHolder.add(textField);
        fieldHolder.add(editHolder);
        add(fieldHolder);
    }
}

Border for Manager

Border border = BorderFactory.createSimpleBorder(new XYEdges(4,4,4,4));
fieldHolder.setBorder(border);

Fixed size Manager

class SizedHFM extends HorizontalFieldManager {
    int mWidth = 0;

    public SizedHFM(int width) {
        super(NO_HORIZONTAL_SCROLL | NO_HORIZONTAL_SCROLLBAR);
        mWidth = width;
    }

    protected void sublayout(int maxWidth, int maxHeight) {
        super.sublayout(mWidth, maxHeight);
        setExtent(mWidth, getPreferredHeight());
    }
}

Sample of use:

class Scr extends MainScreen {
    public Scr() {
        String text = "Lorem ipsum dolor sit amet, consectetuer"
                + " adipiscing elit, sed diam nonummy nibh euismod tincidunt"
                + " ut laoreet dolore magna aliquam erat volutpat.";
        SizedHFM fieldHolder = new SizedHFM(200);
        Border border = BorderFactory
                .createSimpleBorder(new XYEdges(4, 4, 4, 4));
        fieldHolder.setBorder(border);
        fieldHolder.add(new LabelField("some label: "));
        HorizontalFieldManager editHolder = new HorizontalFieldManager(
                HORIZONTAL_SCROLL | HORIZONTAL_SCROLLBAR);
        TextField textField = new TextField("", text, 1024,
                TextField.NO_NEWLINE);
        editHolder.add(textField);
        fieldHolder.add(editHolder);
        add(fieldHolder);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文