Я новичок в j2me. В функции тикера J2me, Как применить другой цвет в одном тикере? - PullRequest
1 голос
/ 09 сентября 2011

* Я занимаюсь разработкой одного проекта j2me-Lwuit для устройств Nokia s40. У меня есть проблема с тикером. Я применил только один цвет для тикера. Но я хочу, чтобы другой цвет применялся для одного тикера. Это мой код для тикера:

       Ticker tick;
        String tickerText=" ";
         Label lblIndice=new Label();
    Label ticker=new Label("");
    for (int i = 0; i < tickerIndiceData.size(); i++) 
        {
            tickerText +=" "+tickerIndiceData.elementAt(i).toString();
            tickerText +=" "+tickerValueData.elementAt(i).toString();
            tickerText +=" "+"("+tickerChangeData.elementAt(i).toString()+")";
            lblIndice.setText(" "+tickerIndiceData.elementAt(i).toString());
            lblValue.setText(" "+tickerValueData.elementAt(i).toString());
            double val=Double.parseDouble(tickerChangeData.elementAt(i).toString());
            if(val>0)
            {
                ticker.getStyle().setFgColor(0X2E9F37);
            }
            else
            {
                ticker.getStyle().setFgColor(0XFF0000);
            }
            lblChange.setText(" "+"("+val+")");
        }
        System.out.println("TICKER==="+tickerText);
ticker.setText(tickerText);
        ticker.getStyle().setFont(Font.createSystemFont(Font.FACE_MONOSPACE, Font.STYLE_BOLD, Font.SIZE_SMALL));
        ticker.startTicker(50, true);*

1 Ответ

1 голос
/ 11 сентября 2011

LWUIT не поддерживает разные цвета для метки (следовательно, тикера), поскольку для этого потребуется немало обработки.

Однако реализовать тикер с нуля в LWUIT довольно просто.Просто получите метку и переопределите краску так:

public void paint(Graphics g) {
    UIManager.getInstance().setFG(g, this);
    Style style = l.getStyle();
    Font f = style.getFont();
    boolean isTickerRunning = l.isTickerRunning();
    int txtW = f.stringWidth(text);

    // update this to draw two strings one with the color that's already set and the
    // other with the color you want
    g.drawString(getText(), getShiftText() + getX(), getY(),style.getTextDecoration());        
}
...