2009-07-16 65 views

回答

19

如果是4.6 RIM OS,你爲什麼不使用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); 

如果您的BlackBerry OS 4.5版本及以上,你可能會嘗試繪製帶有邊框的位圖,繪製事件:

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); 
    } 
} 
+0

我使用的是Blackberry JDE 4.5,您給出的代碼給出了錯誤ors可能是Border類不包含在JDE 4.5中。反正我想知道關於這個Border的概念,如果你有任何鏈接可以獲得教程請給我。 – Rajapandian 2009-07-16 06:44:11

6

覆蓋paint方法如下:

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