views:

2096

answers:

2

Hi, I used BasicEditField in my Blackberry program,the BasicEditField doesnot display any border.So i want to customize the BasicEditField to display with border.please give some code snippets.

+4  A: 

override paint method as follows:

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

If it's 4.6 RIM OS, why don't you use 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);

If your BlackBerry OS version 4.5 and older, you may try draw bitmap with border on it, on paint event:

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);
    }
}
Max Gontar
I am using Blackberry JDE 4.5,the code you have given giving errors may be Border class is not included in JDE 4.5.Anyway i want to know about this Border concepts if you have any link to get the tutorials please give me.
Rajapandian
sure, see update.
Max Gontar