2009-07-16 3 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. В любом случае, я хочу знать об этой концепции границы, если у вас есть какая-либо ссылка для получения уроков, пожалуйста, дайте мне. – Rajapandian

+0

уверен, см. Обновление. –

6

переопределение метод краски следующим образом:

editField= new BasicEditField(..parameters here..) { 
      public void paint(Graphics g) { 
       super.paint(g); 
       g.drawRect(0, 0, getWidth(), getHeight()); 
      } 
     }; 
Смежные вопросы