0

2つのテキストボックスの周囲に境界線を描画しようとしています。これは、メイン画面の背景色をそのままにしておくと機能します。クライアントの仕様では、背景が青色の配色が求められています。EditFieldsが画面に描画されると、画面にまたがる1つのフィールドとして表示されます。2つあると想定されるときにそれぞれがフォーカスを取得し、それ以外の場合はすべてが機能するため、2つあります。次に、2つのEditFieldが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リファレンスドキュメントはあまりないので、どんな助けでも大歓迎です。

4

2 に答える 2

2

わかりました、これをチェックしてください。

これは、EditField を含むいくつかのカスタム BlackBerry フィールドをカスタム境界線で提供するオープン ソース ライブラリです。コードを変更して、必要な境界線を表示できるはずです。

于 2011-04-06T14:07:01.757 に答える
0

カスタム EditField 内の paintBackground メソッドを変更してみてください。このコードを 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());
    }
于 2011-04-06T08:13:56.897 に答える