Как уменьшить размер шрифта? - PullRequest
0 голосов
/ 03 марта 2011
public class TestEye extends MainScreen  {

     LabelField l1,l2;
     RichTextField rch;
     VerticalFieldManager vfm; 
     Font myfont1;
     String word[]={"F D","N P","U H","F Z","K R","U V","Z E","E K","P Z","V N"};

 public TestEye()
 {  
         vfm=new VerticalFieldManager(VerticalFieldManager.USE_ALL_WIDTH|VerticalFieldManager.USE_ALL_HEIGHT)
           {
             protected void paint(Graphics graphics) 
                         {
                           graphics.setColor(Color.BLACK);
                           graphics.fillRect(0, 0, Display.getHorizontalResolution(), Display.getVerticalResolution());
                           super.paint(graphics);
                         }
           };
         l1=new LabelField("----------------",Field.USE_ALL_WIDTH|Field.USE_ALL_HEIGHT);
         l2=new LabelField("----------------",Field.USE_ALL_WIDTH|Field.USE_ALL_HEIGHT);
         rch=new RichTextField() 
           {


               public void paint(Graphics g)
                { 
                      g.setBackgroundColor(Color.BLACK);
                      g.setColor(Color.WHITE);
                          super.paint(g);
                 }
           }; 
         vfm.add(l1);
         vfm.add(l2);
         vfm.add(rch);
         add(vfm);
         System.out.println("::::::::::::::::end test eye:::::::::::::::");
         push(word);  
  }

  public  void push( final String  arr1[]) {

      new Thread(new Runnable()
       {
          public void run()
            {   
                       int k=20;
                     for( int i=0;i<10;i++)
                       {  
                            try
                               {    
                                  String  data=arr1[i]; 
                                  Font myfont1=Font.getDefault().derive(Font.PLAIN,k);
                                  rch.setFont(myfont1);
                                  rch.setText("                     "+(data));
                                  k=k-2;
                                }
                            catch(Exception ex)
                               {
                                  ex.printStackTrace();
                               }
                            try 
                               {
                                  Thread.sleep(2000);
                               }
                            catch (InterruptedException e) 
                               {
                                  e.printStackTrace();
                               }
                         }


              }

        }).start();
  }
}

мне нужно уменьшить размер шрифта для каждого слова, используемого в массиве String.
это мой код, но здесь внутри цикла шрифт не работает, поэтому, пожалуйста, проверьте его и дайте мне несколько советов, спасибо

Ответы [ 2 ]

2 голосов
/ 03 марта 2011

вы можете попробовать ActiveRichTextField. в ActiveRichTextField вы можете не только назначать разные шрифты, но и разные цвета.

, например

String data = "Hello World!";
 int offsets[] ={0,5,data.length()};
 Font[] fonts = new Font[] { Font.getDefault(), Font.getDefault()};
 int bg[] = new int[] { Color.WHITE, Color.WHITE};
 int fg[] = new int[] { Color.BLACK, Color.RED};
 byte attributes[] = {0,1};

 add(new ActiveRichTextField(data, offsets, attributes, fonts,
                                fg, bg, 0));
0 голосов
/ 03 марта 2011

Вы устанавливаете шрифт для всего поля в вашем цикле. Если вы хотите, чтобы разные части содержимого поля были в разных шрифтах, это не способ сделать это. Посмотрите документы для RichTextField, чтобы узнать, как использовать мультиаргументные методы setText для определения разных шрифтов для разных частей текста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...