Easy to Learn Java: Programming Articles, Examples and Tips

Start with Java in a few days with Java Lessons or Lectures

Home

Code Examples

Java Tools

More Java Tools!

Java Forum

All Java Tips

Books

Submit News
Search the site here...
Search...
 
Search the JavaFAQ.nu
1000 Java Tips ebook

1000 Java Tips - Click here for the high resolution copy!1000 Java Tips - Click here for the high resolution copy!

Java Screensaver, take it here

Free "1000 Java Tips" eBook is here! It is huge collection of big and small Java programming articles and tips. Please take your copy here.

Take your copy of free "Java Technology Screensaver"!.

Easy Learn Java: Programming Articles, Examples and Tips - Page 181


Previous 1060 Stories (530 Pages, 2 Per Page) Next

Java Newsletters: Java Newsletters Archive: 181

Go to all tips in Java Newsletters

=== [ The Java FAQ Daily Tips, weekly publication ] ===

Issue No: 181 26 August 2003
14242 subscribers

Foreword: Excuse me for possible mistakes. English is not native language for me.

In this issue:
  • 1. I am going to start applications development for wireless devices. Could you guide me what I could use for that?
  • 2. Is it possible to use RSS ("Really Simple Syndication") together with JSP?
  • 3. Myc
  • 4. Latest posts on our message board
  • 5. Link to Java FAQ

  • Hello dear friends!

    Tip 1

    Question: I am going to start applications development for wireless devices. Could you guide me what I could use for that?

    Answer: The production release of the J2ME Wireless Toolkit 2.0 is now available. This version of the toolkit supports the MIDP 2.0 (JSR-118) specification as well as the Wireless Messaging API (JSR-120), and Mobile Media API (JSR-135) optional packages.

    The Java 2 Platform Micro Edition, (J2ME) Wireless Toolkit are sets of tools that provide application developers with the emulation environments, documentation and examples needed to develop Java technology applications targeted at CLDC/MIDP compliant mobile phones and entry level PDAs. Two products are available depending on your needs. Both tools are available at no charge to individual applications developers.

    For developing applications for MIDP 1.0 devices, use the J2ME Wireless Toolkit version 1.0.4_01.
    For developing applications for MIDP 2.0 devices, use the J2ME Wireless Toolkit version 2.0. The 2.0 version also includes built-in support for the Wireless Messaging and Mobile Media APIs.

    Below are some of the hot features in J2ME Wireless Toolkit 2.0. You can get more detailed information about the new toolkit by referring to the accompanying User's Guide and Release Notes.

    Support for MIDP 2.0
    Support for WMA
    Support for MMAPI
    Solaris and Linux versions
    Additional development features:
    Integrated Over The Air emulation
    Midlet Signing
    WMA Emulation features for SMS and CBS messages
    New skins for QWERTY and Media devices
    Certificate management
    Push Registry emulation
    Monitoring for all protocols (HTTP(S), Socket, datagram, Comm, SSL, SMS/CBS)
    Compile and Runtime selection of API extensions (WMA, MMAPI)
    New demo applications
    Support for the ProGuard obfuscator
    Note: The J2ME Wireless Toolkit 2.0 still includes all of the advanced development features found in Wireless Toolkit 1.0.4_01 (Obfuscation support, method profiling, memory and network monitoring, device speed emulation).

    Java wimps please close your ears ... For the Java programmer who
    thought he knew everything there was to know about Java, have a
    look at the most advanced Java newsletter archived on the website
    http://www.smotricz.com/kabutz Guess what, it won't even cost you
    anything! Subscribe today - you won't be disappointed.


    Tip 2

    Question: Is it possible to use RSS ("Really Simple Syndication") together with JSP?

    Answer: Yes, SUN recently developed RSS Utilities package - a JSP Tag Library to be used by anybody with a basic understanding of RSS, JavaServer Pages, and HTML. The taglib is mostly geared towards non-technical editors of web sites that use RSS for aggregating news content.
    It contains a set of custom JSP tags which make up the RSS Utilities Tag library, and a flexible RSS Parser.

    Please read more here:
    http://developer.java.sun.com/developer/technicalArticles/javaserverpages/rss_utilities/


    Tip 3

    Question: I use an old Java Tool from SUN. Today I read that SUN started End Of Life Process for this Java tool.
    What does it mean? Does it mean that when the process will be finished my tool will stop to work? What is about customers?

    Answer: Everything is Ok! Life continues and the tool will work Smile
    During the EOL transition period, all announced products will be supported as per existing customer support agreements. After the EOL transition period, these products will no longer be supported by Sun. Products that have completed the EOL process will be moved to the Archive area here:
    http://java.sun.com/products/archive/index.html


    Latest posts on our message board
    pop3 mails

    Hi,
    I'm working on a java program that receives pop3 e-mails with attachments. I'm having a problem with updating the message to a status of 'SEEN' - the flags just don't seem to be set. So everytime the program starts, the same message is read again and again.
    Has anyone any ideas??
    please help me here

    StrutsTile Problem with j2sdkee1.3.1 Deploytool

    i have a problem with my tiles plug-in in my struts-config file, when i have the tiles plug-in declaration in struts-config.xml i dont get any errors using verify with Deploytool and im able to deploy may webapps but when i try to run the web application i get a:

    HTTP Status 503 - Servlet action is currently unavailable

    The requested service (Servlet ActionServlet is currently unavailable) is not currently available.

    when i remove the tiles plug-in my ActionServlet works fine my only errors are my name calls to the tileDefinitions.xml.

    my plug-in is:
    thread continues here

    help me please

    I??want to add two jToolbars in a frame, the frame such as Microsoft Internet . but I can't know how to combine the border between MenuBar and ToolBar.anyone can help me?
    please help me here

    Help

    I'm studying Electronics Engineering in the University of Rosario (Argentina) and am a beginner Java programmer who needs detailed information and code examples about the use of the Java Communications API (my final project includes the use of the RS 232 interface to share information between two PCs).
    Sun Microsystems' documents on this topic are not tutorials, the books I can get in my country don't cover this sort of I/O and I can't afford to import a book from the USA ( since "1 dollar = 3 pesos" ).
    Would you please send me any information of yours or
    tell me where I could find it on the Internet?
    Sincerely,
    Jorge D'Agata
    please help me here

    Compositing(image and movie) in Java

    I would like to do some compositing in Java. Currently I'm using QuickTime for Java to do it. It is very easy. However I always get some runtime exception when I execute the program. So I want to switch to pure Java. I want to play a movie as the background, probably using JMF. Then do some animation with some images and text in front of the movie. Is this possible? Any advice or sample program?
    Thanks in advance.
    please help me here

    JTabbedPane and focus issue

    Maybe I'm just doing things a bit different than anyone else and I'm wrong. Here's the deal: I have a focus traversal policy for each frame in my app. When I used a personally-created subclass of JTabbedPane it was trying to set focus on a component on a non-visible tab. So I fixed that problem by not allowing focus to go to non-visible tab panels.

    Now I want, on a tab change, to set focus on the first focusable component of the new tab. But at the time I get a change event to hook this call the old tab is still visible and the second one isn't.
    thread continues here



    comments? | Printer Friendly Page  Send to a Friend | Java Newsletters | Score: 0
    Posted by jalex on Saturday, March 06, 2004 (00:00:00) (4176 reads)

    The Java Lesson 10: for, while, and do-while statements

    Go to all tips in Java Lessons by Jon Huhtala
    All Java Lessons contents page | Java Lesson 1 | Java Lesson 2 | Java Lesson 3 | Java Lesson 4 | Java Lesson 5 | Java Lesson 6 | Java Lesson 7 | Java Lesson 8 | Java Lesson 9 | Java Lesson 10 | Java Lesson 11 | Java Lesson 12 | Java Lesson 13 | Java Lesson 14 | Java Lesson 15 | Java Lesson 16 | Java Lesson 17 | Java Lesson 18 | Java Lesson 19 | Java Lesson 20 | Java Lesson 21 | Java Lesson 22 | Java Lesson 23 | Java Lesson 24 | Java Lesson 25 | Java Lesson 26 | Java Lesson 27 | Java Lesson 28 | Java Lesson 29 | Java Lesson 30 | Java Lesson 31 | Java Lesson 32 | Java Lesson 33 | Java Lesson 34 | Java Lesson 35 | Java Lesson 36 | Java Lesson 37 | Java Lesson 38 | Java Lesson 39 | Java Lesson 40 | Java Lesson 41 | Java Lesson 42 | Java Lesson 43 | Java Lesson 44 | Java Lesson 45 | Java Lesson 46

    The Java Lesson 10

    for, while, and do-while statements


    Overview

    The ability to "loop" by executing one or more statements repetitively is an important part of programming. Loops reduce the number of statements a programmer must code and result in a smaller, more memory efficient program. In Java, looping is performed using the for, while, and do-while statements.

    The for statement

    • Is useful when the number of passes (iterations) can be predetermined

    • Has the general syntax

    for (initialization; condition; update) {
    statements
    ;
    }

    where

    initialization - represents the declaration of one or more local variables of the same data type. When loop processing is complete, all such variables are destroyed.

    condition - represents a binary expression that, if true, allows the loop to continue. The condition is tested prior to each iteration. If no longer true, processing continues at the first statement after the closing brace of the for loop.

    update - represents one or more expressions to be executed at the end of each iteration.

    The braces may be omitted if the loop consists of a single statement. This would constitute a "single statement for loop".

    • Is best learned by example.

    Example 1: Counting to 10 with a local variable

    for (int i = 1; i <= 10; i++)
    System.out.println(i);

    This is a single statement for loop. Local variable i is initialized to 1 before the first iteration and is used for loop control (its value determines when the loop will end). As long as i is less than or equal to 10, looping will continue. At the end of each iteration, i is incremented. Within each iteration, the current value of i is displayed. When the condition is no longer true, processing will continue at the next statement in the program and variable i will be destroyed.

    Example 2: Counting to 10 without a local variable

    int i = 1;
    for (; i <= 10; i++)
    System.out.println(i);
    System.out.println("Now i is " + i);

    This loop generates the same output as the previous example. Because loop control variable i is initialized outside the loop, it will not be destroyed when the loop completes. Its final value (which will be 11) is displayed by the statement after the loop. Notice that when no initialization expression is coded, a place holding semicolon is still required.

    Example 3: Coding multiple initialization and update expressions

    for (int i = 1, j = 10; i <= 10; i++, j--)
    System.out.println(i + " x " + j + " = " + (i * j));

    This loop initializes two local variables, i and j, of the same data type before the first iteration. At the end of each iteration, i is incremented and j is decremented. Within each iteration, the product of i and j is displayed. Notice that commas are used to separate multiple initialization and update expressions.

    Example 4: Coding no initialization, condition, or operation expressions

    for (;Wink
    System.out.println("I won't end");

    This code is perfectly legal and results in an endless loop. Endless loops happen and are sometimes used intentionally (such as a server application waiting for clients to log-in). Be sure you know how to kill one.

    If running the above code under JBuilder 4, you may end the program by clicking the red button in the message pane. In other development environments you may need to close an execution window or simply press Ctrl-C or Ctrl-Break on the keyboard. Consult the documentation of your development environment for details.

    • Can be nested. For example, the following program generates a simple 9 x 9 multiplication table:

    public class App {
    public static void main(String[] args) {

    // This outer loop generates one row of the multiplication
    // table during each iteration.

    for (int row = 1; row <= 9; row++) {

    // This inner loop generates one column of the current row
    // of the multiplication table during each iteration.

    for (int column = 1; column <= 9; column++) {

    // If a one digit number is about to be displayed, preceed it
    // with four spaces. Otherwise, preceed it with three spaces.

    if ((row * column) < 10) {
    System.out.print(" ");
    }
    else {
    System.out.print(" ");
    }

    // Display the number.

    System.out.print((row * column));
    }

    // End the current line.

    System.out.print(" ");
    }
    }
    }

    • Can trap sloppy programmers. For example,

    int i = 1;
    for (; i <= 10; i++);
    System.out.println(i);

    does not do what you initially think. The accidental semicolon in the for statement results in a loop that does nothing but increment i. When the loop ends, the current value of i will be displayed (11 in this example).

    Several other mistakes are common. Among them are:

    1. Omitting the braces of a multiple statement loop to create an accidental single statement loop.

    2. Improper initialization of the loop control variable. This can result in the condition expression being initially false and a loop that has no iterations.

    3. Changing the value of the loop control variable within the body of the loop. The results can be unpredictable.

    The for loop is both powerful and dangerous so use it with care.


    The while statement

    • Defines a block of code to be executed as long as a particular condition is met. The condition is tested prior to each iteration.

    • Has the general syntax

    while (condition) {
    statements
    ;
    }

    where condition represents a binary expression that, if true, permits an iteration of the loop. If no longer true, processing continues at the first statement after the closing brace of the while loop.

    The braces may be omitted if the loop consists of a single statement. This would constitute a "single statement while loop".

    • Does not provide for initialization of variables or automatic update expressions. In spite of these limitations, a while loop can be used in place of nearly any for loop as shown by these examples:

    Example 1: Counting to 10 without a local variable

    int i = 1;
    while (i <= 10) {
    System.out.println(i);
    i++;
    }

    Loop control variable i is initialized outside the loop. Prior to each iteration, the value of i is tested to determine if it is still less than or equal to 10. If so, the current value of i is displayed and i is incremented. Otherwise processing will jump to the first statement after the closing brace of the loop.

    Example 2: An endless loop

    while (true)
    System.out.println("I won't end");

    This is the preferred technique for launching an endless loop.

    Example 3: A small program using nested while loops to generate a 9 x 9 multiplication table

    public class App {
    public static void main(String[] args) {

    // Initialize the row number.

    int row = 1;

    // This outer loop generates one row of the multiplication
    // table during each iteration.

    while (row <= 9) {

    // Initialize the column number.

    int column = 1;

    // This inner loop generates one column of the current row
    // of the multiplication table during each iteration.

    while (column <= 9) {

    // If a one digit number is about to be displayed, preceed it
    // with four spaces. Otherwise, preceed it with three spaces.

    if ((row * column) < 10) {
    System.out.print(" ");
    }
    else {
    System.out.print(" ");
    }

    // Display the number.

    System.out.print((row * column));

    // Increment the column number.

    column++;
    }

    // End the current line.

    System.out.print(" ");

    // Increment the row number.

    row++;
    }
    }
    }

    • Is prone to the same type of errors as the for loop. Such as

    1. Accidental insertion of a semicolon to create an empty loop.

    2. Accidental omission of the braces to turn a multiple statement loop into a single statement loop.

    3. Improper initialization of the loop control variable. This can result in the condition expression being initially false and a loop that has no iterations.

    4. Incorrect modification of the value of the loop control variable within the body of the loop. The results can be unpredictable.

    The do-while statement

    • Defines a block of code to be executed as long as a particular condition is met. The condition is tested at the end of each iteration. You are always guaranteed at least one pass through a do-while loop.

    • Has the general syntax

    do {
    statements
    ;
    }
    while (condition);

    where condition represents a binary expression that, if true, permits another iteration of the loop to be performed. If no longer true, processing continues at the next statement.

    The braces may be omitted if the loop consists of a single statement. This would constitute a "single statement do-while loop".

    • Can be used in place of nearly any while loop as shown by these examples:

    Example 1: Counting to 10 without a local variable

    int i = 1;
    do {
    System.out.println(i);
    i++;
    } while (i <= 10);

    Loop control variable i is initialized outside the loop. Within the loop, the current value of i is displayed and i is incremented. At the end of each iteration, the value of i is tested to determine if it is still less than or equal to 10. If so, the body of the loop is repeated. Otherwise processing will jump to the next statement.

    Example 2: An endless loop

    do {
    System.out.println("I won't end");
    } while(true);

    Example 3: A small program using nested do-while loops to generate a 9 x 9 multiplication table

    public class App {
    public static void main(String[] args) {

    // Initialize the row number.

    int row = 1;

    // This outer loop generates one row of the multiplication
    // table during each iteration.

    do {

    // Initialize the column number.

    int column = 1;

    // This inner loop generates one column of the current row
    // of the multiplication table during each iteration.

    do {

    // If a one digit number is about to be displayed, preceed it
    // with four spaces. Otherwise, preceed it with three spaces.

    if ((row * column) < 10) {
    System.out.print(" ");
    }
    else {
    System.out.print(" ");
    }

    // Display the number.

    System.out.print((row * column));

    // Increment the column number.

    column++;
    } while (column <= 9);

    // End the current line.

    System.out.print(" ");

    // Increment the row number.

    row++;
    } while (row <= 9);
    }
    }

    • Is less likely to result in programmer errors than either the for loop or while loop. Because of its syntax, the compiler will detect errors involving the omission of braces and accidental semicolons.

    Example

    Now that we have covered looping, it is possible to make our programs more useful. The following program can be used to calculate and display the area of one or more circles until the user decides to quit.

    public class App {
    public static void main(String[] args) {

    // Variables.

    double radius;
    double area;
    char again;

    // This loop will be repeated based upon the value of again.

    do {

    // Draw a separator, then prompt for and read the radius from
    // the user.

    Utility.separator(40, '~');
    System.out.print("Enter radius: ");
    radius = Keyboard.readDouble();

    // If the radius is zero or negative, display an error message.
    // Otherwise, calculate and display the area of the circle.

    if (radius <= 0) {
    System.out.println("Invalid radius");
    }
    else {
    area = Math.PI * radius * radius;
    System.out.println("Area is " + area);
    }

    // Draw a separator, then ask the user if they want to do it
    // again and read their reply.

    Utility.separator(40, '~');
    System.out.print("Again? (Y/N): ");
    again = Keyboard.readChar();

    // Repeat the loop as requested.

    } while (again == 'Y' || again == 'y');
    }
    }

    Notes:

    1. The radius and again variables hold data entered by the user. The area variable is calculated during processing.

    2. The do-while loop defines the processing of a single circle's area. It begins by drawing a separator on the screen (for more information about my Utility class and its methods, click here). It then asks the user for the circle's radius and reads their reply. If the radius is less than or equal to zero, an error message is displayed. Otherwise, the circle's area is calculated and displayed.

    3. At the bottom of the do-while loop, a separator is drawn and the user is asked if they want to do it again. Their reply is read and used to determine if another iteration of the loop is to be performed.

    Review questions

    1. Assuming all unseen code is correct, which of the lines below would be part of the output generated by executing the following statements? (choose two)

    for (int i = 0; i <= 1; i++) {
    for (int j = 0; j < 2; j++) {
    if (i == j) {
    }
    else {
    System.out.println("i = " + i + " , j = " + j);
    }
    }
    }

    1. i = 0, j = 0

    2. i = 0, j = 1

    3. i = 0, j = 2

    4. i = 1, j = 0

    5. i = 1, j = 1

    6. i = 1, j = 2

    1. Assuming all unseen code is correct, what will be displayed by the following statements?

    int i = 3;
    for (; i > 1; i--);
    System.out.println("i = " + i);

    1. the statements will not compile

    2. i = 3
      i = 2

    3. i = 3
      i = 2
      i = 1

    4. i = 2
      i = 1

    5. i = 1

    1. Which of the statements below are equivalent to the following code?

      for (int x = 5; x <= 50; x += 5)
      System.out.print(" " + x);

    1. byte x = 5;
      while (x <= 50) {
      System.out.print(" " + x);
      x += 5;
      }

    2. while (x <= 50) {
      byte x = 5;
      System.out.print(" " + x);
      x += 5;
      }

    3. while (byte x = 5; x <= 50) {
      System.out.print(" " + x);
      x += 5;
      }

    4. byte x = 5;
      while (x <= 50; x += 5) {
      System.out.print(" " + x);
      }

    5. while (byte x = 5; x <= 50; x += 5) {
      System.out.print(" " + x);
      }

    1. Assuming all unseen code is correct, what will be displayed by the following statements?

    int x = 0;
    do {
    System.out.print(" " + x);
    x++;
    } while (x <= 3);

    1. the statements will not compile

    2. the statements will compile but nothing will display

    3. 0 1 2

    4. 0 1 2 3

    5. 0 1 2 3 4


    19702 bytes more | 19 comments | Printer Friendly Page  Send to a Friend | Score: 0
    Posted by jalex on Saturday, March 06, 2004 (00:00:00) (20703 reads)

    Previous 1060 Stories (530 Pages, 2 Per Page) Next

    530| 529| 528| 527| 526| 525| 524| 523| 522| 521| 520| 519| 518| 517| 516| 515| 514| 513| 512| 511| 510| 509| 508| 507| 506| 505| 504| 503| 502| 501| 500| 499| 498| 497| 496| 495| 494| 493| 492| 491| 490| 489| 488| 487| 486| 485| 484| 483| 482| 481| 480| 479| 478| 477| 476| 475| 474| 473| 472| 471| 470| 469| 468| 467| 466| 465| 464| 463| 462| 461| 460| 459| 458| 457| 456| 455| 454| 453| 452| 451| 450| 449| 448| 447| 446| 445| 444| 443| 442| 441| 440| 439| 438| 437| 436| 435| 434| 433| 432| 431| 430| 429| 428| 427| 426| 425| 424| 423| 422| 421| 420| 419| 418| 417| 416| 415| 414| 413| 412| 411| 410| 409| 408| 407| 406| 405| 404| 403| 402| 401| 400| 399| 398| 397| 396| 395| 394| 393| 392| 391| 390| 389| 388| 387| 386| 385| 384| 383| 382| 381| 380| 379| 378| 377| 376| 375| 374| 373| 372| 371| 370| 369| 368| 367| 366| 365| 364| 363| 362| 361| 360| 359| 358| 357| 356| 355| 354| 353| 352| 351| 350| 349| 348| 347| 346| 345| 344| 343| 342| 341| 340| 339| 338| 337| 336| 335| 334| 333| 332| 331| 330| 329| 328| 327| 326| 325| 324| 323| 322| 321| 320| 319| 318| 317| 316| 315| 314| 313| 312| 311| 310| 309| 308| 307| 306| 305| 304| 303| 302| 301| 300| 299| 298| 297| 296| 295| 294| 293| 292| 291| 290| 289| 288| 287| 286| 285| 284| 283| 282| 281| 280| 279| 278| 277| 276| 275| 274| 273| 272| 271| 270| 269| 268| 267| 266| 265| 264| 263| 262| 261| 260| 259| 258| 257| 256| 255| 254| 253| 252| 251| 250| 249| 248| 247| 246| 245| 244| 243| 242| 241| 240| 239| 238| 237| 236| 235| 234| 233| 232| 231| 230| 229| 228| 227| 226| 225| 224| 223| 222| 221| 220| 219| 218| 217| 216| 215| 214| 213| 212| 211| 210| 209| 208| 207| 206| 205| 204| 203| 202| 201| 200| 199| 198| 197| 196| 195| 194| 193| 192| 191| 190| 189| 188| 187| 186| 185| 184| 183| 182|
    181
    | 180| 179| 178| 177| 176| 175| 174| 173| 172| 171| 170| 169| 168| 167| 166| 165| 164| 163| 162| 161| 160| 159| 158| 157| 156| 155| 154| 153| 152| 151| 150| 149| 148| 147| 146| 145| 144| 143| 142| 141| 140| 139| 138| 137| 136| 135| 134| 133| 132| 131| 130| 129| 128| 127| 126| 125| 124| 123| 122| 121| 120| 119| 118| 117| 116| 115| 114| 113| 112| 111| 110| 109| 108| 107| 106| 105| 104| 103| 102| 101| 100| 99| 98| 97| 96| 95| 94| 93| 92| 91| 90| 89| 88| 87| 86| 85| 84| 83| 82| 81| 80| 79| 78| 77| 76| 75| 74| 73| 72| 71| 70| 69| 68| 67| 66| 65| 64| 63| 62| 61| 60| 59| 58| 57| 56| 55| 54| 53| 52| 51| 50| 49| 48| 47| 46| 45| 44| 43| 42| 41| 40| 39| 38| 37| 36| 35| 34| 33| 32| 31| 30| 29| 28| 27| 26| 25| 24| 23| 22| 21| 20| 19| 18| 17| 16| 15| 14| 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1|


    Home Code Examples Java Forum All Java Tips Books Submit News, Code... Search... Offshore Software Tech Doodling

    RSS feed Java FAQ RSS feed Java FAQ News     

        RSS feed Java Forums RSS feed Java Forums

    All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest 1999-2006 by Java FAQs Daily Tips.

    Interactive software released under GNU GPL, Code Credits, Privacy Policy