2012-01-05 6 views
0

ためにスクロールいない私は、JRE 5と私のシステムでは9550シミュレータを使用しています..私はVerticalFieldManagerをスクロールすると私のアプリに問題がある...VerticalFieldManager jre5

私はMainScreenのJavaファイルから新しい画面を呼び出しています..

コードは次のようである...

UiApplication.getUiApplication().invokeLater(new Runnable() 
{ 
    public void run() 
    { 
     try 
     { 
      UiApplication.getUiApplication().pushScreen(new CustomDialog()); 
     } 
     catch (Exception e) { 
      Dialog.alert("loading Error"); 
     } 
    } 
}); 

そしてCustomDialog.javaが似ていること

...

public final class CustomDialog extends MainScreen 
{ 
    LabelField title, message; 
    HorizontalFieldManager hfm; 
    VerticalFieldManager vfm; 
    GridFieldManager gfm; 

    public CustomDialog() 
    { 
     super(Screen.DEFAULT_CLOSE); 

     hfm = new HorizontalFieldManager(Field.FIELD_LEFT); 
     title = new LabelField("hello User",FIELD_HCENTER) 
     { 
      protected void paint(Graphics graphics) { 
       graphics.setColor(Color.BROWN); 
       super.paint(graphics); 
      }; 
     }; 
     title.setFont(getFont().derive(Font.BOLD, 20)); 
     hfm.add(title); 
     add(hfm); 

     vfm = new VerticalFieldManager(Manager.VERTICAL_SCROLL); 
     message = new LabelField("my text");//Actually a long text.. 
     vfm.add(message); 
     VerticalFieldManager tmp = new VerticalFieldManager(); 
     tmp.add(vfm); 
     add(tmp); 
    } 
} 

メッセージが画面に表示されているが、それがスクロールされていません。.. 実際には、メッセージが長いテキストです、と私はそのVerticalFieldManagerのためにスクロールしたいと思う..

は、どのように私はそれをスクロールし得ることができますか?

答えて

1

VerticalFieldManagerスクロールするには、LabelFieldの前後にフォーカス可能なNullFieldオブジェクトを追加します。

vfm.add(New NullField()); 
vfm.add(message); 
vfm.add(New NullField()); 

ラベルの一番下から上にスクロールします。逆もまた同様です。この問題を解消するには、RichTextFieldを使用してください。長いテキストを表示するのに最適です。それ自体は垂直方向(行単位)と水平方向(文字単位)のスクロールを処理します。

+0

はい、私はそれを答えて言いました。しかし、それはスクロールの問題を解決します。 ''を解決するには、テキストの最初の部分と最後の部分を表示するだけです。 "'多くのオプションがあります。テキストを複数の行に分割し、それぞれをLabelFieldに追加することができます。 @ rfsk2010の答えを見てください。 – Rupak

+0

ちょうどこのような何か、vfm.add(新しいRichTextField(テキスト)); – Rupak

+0

はい、LabelField(タイトル)とRichTextField(コンテンツ)を別のVerticalFieldManagerに追加します。 – Rupak

0

テキストが長すぎない場合は、Rupaksの回答がスクロールに有効です。しかし、テキストがEULAや利用規約などの複数のページに似ている場合は、開始ページから最後のページにジャンプします。

私はlabelFieldをeditFieldに置き換えたので、次のコードを使用して解決できます。

    LabelField title; 
        EditField message; 
        HorizontalFieldManager hfm; 
        VerticalFieldManager vfm; 
        GridFieldManager gfm; 
        final MainScreen screen=new MainScreen(); 
        hfm = new HorizontalFieldManager(Field.FIELD_LEFT); 
        title = new LabelField("hello User",FIELD_HCENTER) 
        { 
         protected void paint(Graphics graphics) { 
          graphics.setColor(Color.BROWN); 
          super.paint(graphics); 
         }; 
        }; 
        title.setFont(getFont().derive(Font.BOLD, 20)); 
        hfm.add(title); 
        add(hfm); 

        vfm = new VerticalFieldManager(Manager.VERTICAL_SCROLL); 
        message = new EditField("","long text"); 

        vfm.add(message); 
        VerticalFieldManager tmp = new VerticalFieldManager(); 
        tmp.add(vfm); 
        add(tmp); 
+0

EditFieldとして編集不可能な編集フィールドを作成することができますtxt = new EditField(Field.FOCUSABLE | Field.READONLY) – rfsk2010

+0

rupakが解決しました。編集フィールドにキーボードと私のテキストを編集することができます.. –

0

vfm = new VerticalFieldManager(Manager.VERTICAL_SCROLL); 
isteadOf

super(Screen.DEFAULT_CLOSE|VERTICAL_SCROLL); 

isteadOf

super(Screen.DEFAULT_CLOSE); 

vfm = new VerticalFieldManager(VERTICAL_SCROLL); 

を試してみてください

関連する問題