我是j2me的初学者。在J2me Ticker函数中,如何在Single Ticker中应用不同颜色?

时间:2011-09-09 12:29:25

标签: java-me colors lwuit ticker

*我正在为诺基亚s40设备开发一个j2me-Lwuit项目。我有一些问题,请注意。我只申请了一种颜色的tiker.But我想要不同的颜色申请单个自动收报机。这是我的代码Ticker:

       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 个答案:

答案 0 :(得分:1)

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());        
}