created 06/25/99

Chapter 59 Programming Exercises

Exercise 1 — Four Buttons

Modify the TwoButtons program so that it has four buttons: one for red, one for green, one for blue, and one for gray. Clicking on a button changes the frame to the corresponding color. The GUI will look like this after the green button has been clicked:

A sensible way to do this is to copy the chapter's example program and modify it. For a real challenge, try to do it from scratch.

Click here to go back to the main menu.


Exercise 2 — Color Cycle

Write a program that has only one button in the frame. Clicking on the button cycles through the colors: red --> green --> blue --> gray --> red --> and so on, one color change per click. In addition to the setBackground( Color.color ) method we have been using, you will need the Color getBackground() method to get the current color.

Another way to do this (a somewhat cruder way) is to use an instance variable (of type Color) in the frame to hold the current color.

Click here to go back to the main menu.


Exercise 3 — Three Button Monty

Write a program implements a game:

There are three buttons in the frame. Two of the buttons will cause the program to quit using System.exit(0); the remaining button will change the frame to green (a win!) The winning button is different each time the game is played.

The easy way to do this (although it seems like cheating) is to treat each button the same way. The ActionPerformed() method will not even check which button was clicked. It will pick a random integer from 0 to 2 and if the integer happens to be 0 perform the "winning" action. Otherwise, it will perform the "loosing" action. This is similar to some electronic gambling devices in casinos, where it appears to the user that there are "winning moves" but in fact the machine actually ignores what the user has done and just declares a "win" every now and then, according to pre-assigned odds. You will need to use the Random class:

Random randNum = new Random(); // create a Random number object

. . .

int someInt = Math.abs( randNum.nextInt() )%3   // someInt gets a number from 0 to 2

You may recall seeing Random in Chapter 38.

Click here to go back to the main menu.


Exercise 4 — Winning Streak

Modify the program of Exercise 3 so that only one button exits the program. If the user clicks on any of the other two buttons, the frame just changes color. The user keeps clicking until the "loosing button" is clicked. The user's goal is to click as many times as possible.

Click here to go back to the main menu.


Exercise 5 — Comination Lock

Create a frame with ten buttons, labeled 0 through 9. To exit the program, the user must click on the correct three buttons in order, something like 7-3-5. If the wrong combination is used, the frame turns red.

Click here to go back to the main menu.


Exercise 6 — Expand and Shrink Buttons

Create a frame with two buttons, called Expand and Shrink. When the Expand button is clicked, the frame expands by 10 percent. When the Shrink button is clicked, the frame shrinks by 10 percent. Do this in the actionPerformed() method by using setSize(). Keep track of the current size of the frame with two instance variables of type int. When you increase them or decrease them by 10 percent, you will have to use integer arithmetic or use a type cast.

Click here to go back to the main menu.