2009-05-22 8 views
4

特定のテキストの色をブラックベリーアプリケーションのテキストボックスでのみ変更するにはどうすればよいですか?特定のテキストの色をBlackBerryのテキストボックスでのみ変更する

+0

TextFieldを意味しますか? TextBoxはJ2MEのlcduiの一部であり、ルック・アンド・フィールを変更することはできません。 – Fostah

+0

はい、私はTextFieldだけを意味しました。 色を指定するには、赤色のテキストを指定し、黒色の色を指定してください。 – iOSDev

答えて

4

Fostahが彼のコメントで述べたように、TextBoxのクラスはルックアンドフィールを変更するという点で非常に柔軟ではありません。多くの "Field"クラスのルック・アンド・フィールでさえ、変更するのはかなり難しいです。

しかし、柔軟性があり、TextBoxではなくEditField(またはその変形)などのFieldを使用できる場合は、paintメソッドをオーバーライドするだけでよいでしょう。ような何か:

protected void paint(Graphics graphics) { 
    graphics.setColor(Color.RED); 
    super.paint(graphics); 
} 
4

ActiveRichTextFieldをチェックしましたか?私はRichTextFieldを自分で使っただけですが、ActiveRichTextFieldでは、フォントに加えてテキスト領域の色を指定することができます。&の書式設定です。これらのフィールドを設定するにはちょっとセットアップが必要ですが、RichTextFieldのjavadocをチェックするとかなり良い説明が得られます。

ことはここではいくつかのサンプルコードです:

int offsets[] = new int[]{0, 5, 11}; 
Font[] fonts = new Font[]{Font.getDefault(), Font.getDefault()}; 
int bg[] = new int[]{Color.WHITE, Color.WHITE}; 
int fg[] = new int[]{Color.BLACK, Color.GREEN}; 
byte attributes[] = new byte[]{0, 1}; 

add(new ActiveRichTextField("Hello world", offsets, attributes, fonts, fg, bg, 0)); 
+0

ActiveRichTextFieldで試しました。 私が欲しかったものを私に与えてくれました。 しかし、上記のテキストフィールドは私にテキストの編集を許可していません...私はこのActiveRichTextFieldのプロパティをEDITABLEとして設定しようとしましたが、それは作業をしませんでした... – iOSDev

+0

Jazz、あなたはフィールドを編集可能にしますか?またはあなたによって? このユーザー入力テキストの一部を赤色にしたいですか? –

+0

パット、私は、ユーザーによってテキストボックスを編集可能にします。 – iOSDev

6

は、残念ながら答えは独自のロールです - あなたがすべてでフォントの色を変更することができます編集可能なテキストフィールドコントロールはありません。 @Mark Novakowskiの答えは、その問題を回避する標準的な方法ですが、すべてのテキストを1つの色に変更します。

パールスタイルのSureTypeキーボードのサポートについて心配していない場合は、ActiveRichTextFieldのkeyCharをオーバーライドして、ActiveRichTextFieldのテキストに文字を手動で追加できます。

SureTypeフィールドの場合、非QWERTY電話機(Pearlシリーズ)のSureType APIへの低レベルアクセス(予測テキストポップアップを正しく処理するため)は必要ありません。これらのデバイスで正しく機能するように完全にカスタムのテキストフィールドを取得するためには、実際のトリッキーを利用する必要があります。これは、マネージャで複数のEditFieldを配置しなければならない場合があります。 1つのEditFieldが読み込みを表示するようにオーバーライドされます(Marksの回答のように)。そのトリックは、必要に応じて動的にテキストフィールドを作成して追加します。

はい、ときにはRIM APIによって簡単に操作が簡単になり、困難なことはほとんど不可能になります。

関連する問題