0

我正在尝试在两个文本框周围画一个边框,如果我单独保留主屏幕的背景颜色,它会起作用。客户的规范要求使用蓝色背景的配色方案。当 EditFields 被绘制到屏幕上时,它们显示为跨越屏幕的一个字段。有 2 个,因为每个都得到焦点,当它应该是两个时,一切正常。然后将两个 EditField 添加到 GridFieldManager 以控制布局。在此处输入图像描述

我将 EditFields 子类化并在每个 EXEditFields 周围添加边框,如下所示:

public class EXEditField extends EditField {

    ...


    private void init( MainScreen scrn ) {
                if ( this.hasVirtualKeyboard() )
                    this.vkbd = scrn.getVirtualKeyboard();

                this.setMaxSize( this.MAX_CHARS );

                this.setBorder( BorderFactory.createRoundedBorder(new XYEdges(0,0,0,0), Border.STYLE_SOLID) );
                this.setBackground( BackgroundFactory.createSolidBackground(Color.WHITE) );
                //this.setPadding( 3, 3, 3, 3 );
                //this.setMargin( 0, 3, 0, 3 );
            }

    ...

    } // end class

非常感谢任何帮助,因为没有太多好的黑莓参考文档。

4

2 回答 2

2

好的,检查一下

它是一个开源库,提供一些自定义 BlackBerry 字段,包括带有自定义边框的 EditField。您应该能够修改代码以显示所需的边框。

于 2011-04-06T14:07:01.757 回答
0

您可以尝试更改自定义 EditField 中的 paintBackground 方法,尝试将此代码放入您的 EditField 类中:

    protected void paintBackground(Graphics graphics) {

        graphics.setColor(Color.BLACK);
        graphics.drawRect(0, 0, getWidth(), getHeight());

        graphics.setColor(Color.WHITE);
        graphics.fillRect(0, 0, getWidth(), getHeight());
    }
于 2011-04-06T08:13:56.897 回答