Java Programing

June 13, 2007

The reason is that in changeColor( ) we

Filed under: Java Programming — webmaster @ 11:10 am

The reason is that in changeColor( ) we increment colorIndex before testing its value. That means that for some brief period of time while Java is running through our code, colorIndex can have a value that is past the end of our array. If our currentColor( ) method happened to run at that same moment, we would see a runtime “array out of bounds” error. There are, of course, ways in which we could fudge around the problem in this case, but this simple example is representative of more general synchronization issues we need to address. In the next section, you’ll see that Java makes dealing with these problems easy through language-level synchronization support. .4 HelloJava4: Netscape’s Revenge We have explored quite a few features of Java with the first three versions of the HelloJava application. But until now, our application has been rather passive; it has waited patiently for events to come its way and responded to the whims of the user. Now our application is going to take some initiative HelloJava4 will blink! Here is the code for our latest version: //file: HelloJava4.javaimport java.awt.*; import java.awt.event.*; import javax.swing.*; public class HelloJava4extends JComponentimplements MouseMotionListener, ActionListener, Runnable { // Coordinates for the message int messageX = 125, messageY = 95; String theMessage; JButton theButton; int colorIndex; // Current index into someColors. static Color[] someColors = { Color.black, Color.red, Color.green, Color.blue, Color.magenta }; boolean blinkState; public HelloJava4(String message) { theMessage = message; theButton = new JButton(”Change Color”); setLayout(new FlowLayout( )); add(theButton); theButton.addActionListener(this); addMouseMotionListener(this); Thread t = new Thread(this); t.start( ); } public void paintComponent(Graphics g) { g.setColor(blinkState ? getBackground() : currentColor( )); g.drawString(theMessage, messageX, messageY); } public void mouseDragged(MouseEvent e) { messageX = e.getX( ); messageY = e.getY( ); repaint( ); } public void mouseMoved(MouseEvent e) {} - 48

Note: If you are looking for good and high quality web space to host and run your application check Lunarwebhost Tomcat Web Hosting services

No Comments

No comments yet.

RSS feed for comments on this post. TrackBack URI

Sorry, the comment form is closed at this time.

Powered by Java Web Hosting