黑莓 - 如何为BasicEditField添加边框?

7

我在我的Blackberry程序中使用了BasicEditField,但是BasicEditField没有显示任何边框。因此,我想自定义BasicEditField以显示边框,请提供一些代码片段。

2个回答

19

如果您使用的是4.6 RIM操作系统,为什么不使用Border呢?

BasicEditField roundedBorderEdit = new BasicEditField();
XYEdges padding = new XYEdges(15, 15, 15, 15);
int color = Color.CRIMSON;
int lineStyle = Border.STYLE_DOTTED;
Border roundedBorder = BorderFactory.createRoundedBorder(padding, 
     color, lineStyle);
roundedBorderEdit.setBorder(roundedBorder);

BasicEditField bevelBorderEdit = new BasicEditField();
XYEdges edges = new XYEdges(10, 10, 10, 10);
XYEdges outerColors = new XYEdges(Color.BLACK, Color.WHITE, 
     Color.BLACK, Color.WHITE);
XYEdges innerColors = new XYEdges(Color.WHITE, Color.BLACK, 
     Color.WHITE, Color.BLACK);
Border bevelBorder = BorderFactory.createBevelBorder(edges, 
     outerColors, innerColors);
bevelBorderEdit.setBorder(bevelBorder);

如果你的黑莓操作系统版本为4.5或更早,你可以在 paint 事件中尝试为位图添加边框:

class BorderedEdit extends BasicEditField
{
    Bitmap mBorder = null;

    public BorderedEdit(Bitmap borderBitmap) {
        mBorder = borderBitmap;
    }

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

我正在使用Blackberry JDE 4.5,你提供的代码出现错误,可能是因为JDE 4.5中未包含Border类。无论如何,我想了解关于Border概念的更多信息,如果你有任何教程链接,请提供给我。 - Rajapandian

6

将paint方法重写如下:

editField= new BasicEditField(..parameters here..) {
            public void paint(Graphics g) {
                super.paint(g);
                g.drawRect(0, 0, getWidth(), getHeight());
            }
        };

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接