Границы вокруг EditFields - Blackberry
Я пытаюсь нарисовать границу вокруг двух текстовых полей, и это работает, если я оставлю фоновый цвет основного экрана в покое. Спецификация клиента требует цветовой схемы с синим фоном. Когда поля редактирования отображаются на экране, они отображаются как одно поле, охватывающее весь экран. Есть 2, так как каждый получает фокус, когда предполагается два, и все работает иначе. Затем два EditFields добавляются в 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
Любая помощь очень ценится, так как хороших справочных документов Blackberry не так много.
2 ответа
Хорошо, проверь это.
Это библиотека с открытым исходным кодом, которая предоставляет некоторые настраиваемые поля BlackBerry, включая EditField, с настраиваемыми границами. Вы должны быть в состоянии изменить код для отображения желаемых границ.
Вы можете попробовать изменить метод paintBackground в своем пользовательском EditField, попробуйте добавить этот код в свой класс 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());
}