Using alerts and tickers in J2ME
By: Eric Giguere Printer Friendly Format
import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import java.util.*; public class StockWatcher extends MIDlet { Display display; Ticker ticker = new Ticker( "" ); Command exitCommand = new Command( "Exit", Command.EXIT, 1 ); Timer timer = new Timer(); StockChecker checker = new StockChecker(); TickerForm form = new TickerForm(); Alert alert = new Alert( "Stock Alert!" ); public StockWatcher() { display = Display.getDisplay( this ); alert.setTimeout( Alert.FOREVER ); } protected void destroyApp( boolean unconditional ) { } protected void startApp() { display.setCurrent( form ); timer.schedule( checker, 0, 30000 ); } protected void pauseApp() { } public void exit(){ timer.cancel(); destroyApp( true ); notifyDestroyed(); } // Display a simple form to hold the ticker class TickerForm extends Form implements CommandListener { public TickerForm(){ super( "Stock Watch" ); setTicker( ticker ); addCommand( exitCommand ); setCommandListener( this ); } public void commandAction( Command c, Displayable d ){ exit(); } } // Check the stock values and put up an alert if // they're beyond certain limits.... class StockChecker extends TimerTask { Random generator = new Random(); int sybsValue = 20000; int sunwValue = 30000; int ibmValue = 40000; StringBuffer buf = new StringBuffer(); public void run(){ String values = getStockValues(); ticker.setString( values ); if( sybsValue < 18000 || sybsValue > 22000 || sunwValue < 28000 || sunwValue > 32000 || ibmValue < 38000 || ibmValue > 42000 ){ alert.setString( values ); } if( !alert.isShown() ){ display.setCurrent( alert, form ); } } private String getStockValues(){ sybsValue = randomStockValue( sybsValue ); sunwValue = randomStockValue( sunwValue ); ibmValue = randomStockValue( ibmValue ); buf.setLength( 0 ); appendValue( "SYBS", sybsValue ); appendValue( "SUNW", sunwValue ); appendValue( "IBM", ibmValue ); return buf.toString(); } // Generate a random stock value... in the // real world you'd use HTTP to obtain the // stock value from a broker's website. private int randomStockValue( int oldVal ){ int incr1 = ( generator.nextInt() % 2 ); int incr2 = ( generator.nextInt() % 16 ); if( incr1 < 1 ){ oldVal -= incr1 * 1000; } else { oldVal += ( incr1 - 2 ) * 1000; } if( incr2 < 8 ){ oldVal -= incr2 * 250; } else { oldVal += incr2 * 250; } return oldVal; } private void appendValue( String stock, int val ){ buf.append( stock ); buf.append( ' ' ); buf.append( Integer.toString( val / 1000 ) ); buf.append( '.' ); buf.append( Integer.toString( val % 1000 ) ); buf.append( ' ' ); } } }
Comment on this tutorial
- Data Science
- Android
- AJAX
- ASP.net
- C
- C++
- C#
- Cocoa
- Cloud Computing
- HTML5
- Java
- Javascript
- JSF
- JSP
- J2ME
- Java Beans
- EJB
- JDBC
- Linux
- Mac OS X
- iPhone
- MySQL
- Office 365
- Perl
- PHP
- Python
- Ruby
- VB.net
- Hibernate
- Struts
- SAP
- Trends
- Tech Reviews
- WebServices
- XML
- Certification
- Interview
categories
Subscribe to Tutorials
Related Tutorials
Code sample to Send SMS from a J2ME application.
Adding your own Application icon for your J2ME application (jar file)
Play a multimedia file in J2ME Program (Audio/Video) using MMAPI
Using HttpConnection in J2ME (Retrieve web content from a website to a phone)
Using HTTP vs UDP vs Socket in J2ME
RMSCookieConnector - Using Cookies in J2ME
Client Server in J2ME (Socket Programming sample)
Datagrams in J2ME (UDP Programming sample)
POST UTF-8 encoded data to the server in J2ME
Using alerts and tickers in J2ME
Using List to create a Menu and Menu items in J2ME
lists, forms, choices, gauges, text fields, text boxes in J2ME
Timer and TimerTask example in J2ME