Границы вокруг 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());
    }
Другие вопросы по тегам