|
|
|
1000 Java Tips ebook
|
|
 

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
|
|
===
[ 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:
Hello dear friends!
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.
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/
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 
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? | | 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
|
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
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".
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
(; 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.
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("
"); }
} }
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:
-
Omitting the braces of a multiple
statement loop to create an accidental single statement loop.
-
Improper initialization of the
loop control variable. This can result in the condition expression being
initially false and a loop that has no iterations.
-
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
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".
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++; }
} }
-
Accidental insertion of a
semicolon to create an empty loop.
-
Accidental omission of the braces
to turn a multiple statement loop into a single statement loop.
-
Improper initialization of the
loop control variable. This can result in the condition expression being
initially false and a loop that has no iterations.
-
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
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".
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);
} }
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:
-
The radius and again variables hold data entered by the user.
The area variable is
calculated during processing.
-
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.
-
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
-
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); } } }
-
i = 0, j = 0
-
i = 0, j = 1
-
i = 0, j = 2
-
i = 1, j = 0
-
i = 1, j = 1
-
i = 1, j = 2
-
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);
-
the statements will not
compile
-
i = 3 i = 2
-
i = 3 i = 2 i = 1
-
i = 2 i = 1
-
i = 1
-
Which of the statements
below are equivalent to the following code?
for (int x = 5; x <= 50; x += 5)
System.out.print(" " + x);
-
byte x = 5; while (x <= 50) {
System.out.print(" " + x); x += 5; }
-
while (x <= 50) { byte x = 5;
System.out.print(" " + x); x += 5; }
-
while (byte x = 5; x <= 50) {
System.out.print(" " + x); x += 5; }
-
byte x = 5; while (x <= 50; x += 5) {
System.out.print(" " + x); }
-
while (byte x = 5; x <= 50; x += 5) {
System.out.print(" " + x); }
-
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);
-
the statements will not
compile
-
the statements will
compile but nothing will display
-
0 1 2
-
0 1 2 3
-
0 1 2 3
4
19702 bytes more | 19 comments | | Score: 0
|
Posted by jalex on Saturday, March 06, 2004 (00:00:00) (20703 reads)
|
|
|