ticker在screen类中被定义为一个域(field),它可以被连接到任何screen类的子集中。在下面的例子中,我们将展示如何将ticker连接到列表(list)和alert对象中。
注意:以下例子基于midp和cldc 1.0.3
源代码:
/*--------------------------------------------------
* tickerexample.java
*-------------------------------------------------*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class tickerexample extends midlet implements commandlistener
{
private display display; // 对显示对象的引用reference to display object
private list lsproducts; // 主产品列表
private alert alhelp; // 显现文字和图像的警告板
private ticker tksale; // 对现在销售的提示
private command cmexit; // 退出命令
public tickerexample()
{
display = display.getdisplay(this);
cmexit = new command("exit", command.screen, 1);
tksale = new ticker("current sale: bob's pretty good laptop only $529.00");
lsproducts = new list("products", choice.implicit);
lsproducts.append("laptop", null);
lsproducts.append("printer", null);
lsproducts.append("help", null);
lsproducts.addcommand(cmexit);
lsproducts.setcommandlistener(this);
lsproducts.setticker(tksale);
}
public void startapp()
{
display.setcurrent(lsproducts);
}
public void pauseapp()
{ }
public void destroyapp(boolean unconditional)
{ }
public void showalert()
{
try
{
// create an image
image im = image.createimage("/help.png");
// create alert, add text and image, no sound
alhelp = new alert("help information",
"bob's pretty good products...so much to choose from!",
im, null);
alhelp.settimeout(alert.forever);
alhelp.setticker(tksale);
}
catch(exception e)
{
system.out.println("unable to read png image.");
}
// display the alert. once dismissed, return to product list
display.setcurrent(alhelp, lsproducts);
}
public void commandaction(command c, displayable s)
{
if (c == list.select_command)
{
switch (lsproducts.getselectedindex())
{
case 0:
system.out.println("laptop selected");
break;
case 1:
system.out.println("printer selected");
break;
case 2:
showalert();
break;
}
}
else if (c == cmexit)
{
destroyapp(true);
notifydestroyed();
}
}
}
闽公网安备 35060202000074号