Границы вокруг EditFields - Blackberry - PullRequest
0 голосов
/ 05 апреля 2011

Я пытаюсь нарисовать границу вокруг двух текстовых полей, и это работает, если я оставлю фоновый цвет основного экрана в одиночку. Спецификация клиента требует цветовой схемы с синим фоном. Когда поля редактирования отображаются на экране, они отображаются как одно поле, охватывающее весь экран. Есть 2, так как каждый получает фокус, когда предполагается два, и все работает иначе. Два EditFields затем добавляются в GridFieldManager для управления макетом. enter image description here

Я создаю подклассы 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 ]

2 голосов
/ 06 апреля 2011

Хорошо, отметьте это .

Это библиотека с открытым исходным кодом, которая предоставляет некоторые настраиваемые поля BlackBerry, включая EditField, с настраиваемыми границами. Вы должны иметь возможность изменять код для отображения желаемых границ.

0 голосов
/ 06 апреля 2011

Вы можете попробовать изменить метод 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());
    }
...