A lottery commission offers four different lottery games to play: Three-number, Four-number, Five-number and Five-number + 1 lotteries. Each game has independent numbers. Develop an application that randomly picks numbers for all four games and displays the generated numbers in a GUI (Fig. 15.28). The games are played as follows:

? Three-number lotteries require players to choose three numbers in the range

0–9.

? Four-number lotteries require players to choose four numbers, in the range

0–9.

? Five-number lotteries require players to choose five numbers in the range 1–

39.

? Five-number + 1 lotteries require players to choose five numbers in the range

1–49 and an additional number in the range 1–42.



a) Copying the template to your working directory. Copy the C:Examples Tutorial15ExercisesLotteryPicker directory to your C:SimplyJava direc- tory.

b) Opening the template file. Open the LotteryPicker.java file in your text editor.

c) Generating random numbers. Create a method on line 142 named generate that will take two ints representing the low and high end of a range of random numbers and return a String containing a generated random number.

d) Drawing numbers for the games. Add code to the generateJButtonAction- Performed


```
1 // LotteryPicker.java
2 // This application picks randomly generated numbers for a lottery.
3 import java.awt.*;
4 import java.awt.event.*;
5 import java.text.DecimalFormat;
6 import java.util.Random;
7 import javax.swing.*;
8
9 public class LotteryPicker extends JFrame
10 {
11 // JLabel and JTextField to display three number lottery
12 private JLabel threeJLabel;
13 private JTextField output3JTextField;
14
15 // JLabel and JTextField to display four number lottery
16 private JLabel fourJLabel;
17 private JTextField output4JTextField;
18
19 // JLabel and JTextField to display five number lottery
20 private JLabel fiveJLabel;
21 private JTextField output5JTextField;
22
23 // JLabel and JTextField to display five number + one lottery
24 private JLabel fivePlus1JLabel;
25 private JTextField output5Plus1JTextField;
26 private JTextField outputExtra1JTextField;
27
28 // JButton to generate new lottery numbers
29 private JButton generateJButton;
30
31 // create a new Random object
32 private Random generator = new Random();
33
34 // no-argument constructor
35 public LotteryPicker()
36 {
37 createUserInterface();
38 }
39
40 // create and position GUI components; register event handlers
41 private void createUserInterface()
42 {
43 // get content pane for attaching GUI components
44 Container contentPane = getContentPane();
45
46 // enable explicit positioning of GUI components
47 contentPane.setLayout( null );
48
49 // set up threeJLabel
50 threeJLabel = new JLabel();
51 threeJLabel.setText( "Three number lottery:" );
52 threeJLabel.setBounds( 16, 18, 132, 16 );
53 contentPane.add( threeJLabel );
54
55 // set up output3JTextField
56 output3JTextField = new JTextField();
57 output3JTextField.setBounds( 152, 16, 124, 23 );
58 output3JTextField.setHorizontalAlignment( JTextField.CENTER );
59 output3JTextField.setEditable( false );
60 contentPane.add( output3JTextField );
61
62 // set up fourJLabel
63 fourJLabel = new JLabel();
64 fourJLabel.setText( "Four number lottery:" );
65 fourJLabel.setBounds( 16, 50, 132, 16 );
66 contentPane.add( fourJLabel );
67
68 // set up output4JTextField
69 output4JTextField = new JTextField();
70 output4JTextField.setBounds( 152, 48, 124, 23 );
71 output4JTextField.setHorizontalAlignment( JTextField.CENTER );
72 output4JTextField.setEditable( false );
73 contentPane.add( output4JTextField );
74
75 // set up fiveJLabel
76 fiveJLabel = new JLabel();
77 fiveJLabel.setText( "Five number lottery:" );
78 fiveJLabel.setBounds( 16, 82, 132, 16 );
79 contentPane.add( fiveJLabel );
80
81 // set up output5JTextField
82 output5JTextField = new JTextField();
83 output5JTextField.setBounds( 152, 80, 124, 23 );
84 output5JTextField.setHorizontalAlignment( JTextField.CENTER );
85 output5JTextField.setEditable( false );
86 contentPane.add( output5JTextField );
87
88 // set up fivePlus1JLabel
89 fivePlus1JLabel = new JLabel();
90 fivePlus1JLabel.setText( "Five number + 1 lottery:" );
91 fivePlus1JLabel.setBounds( 16, 114, 132, 16 );
92 contentPane.add( fivePlus1JLabel );
32 private Random generator = new Random();
33
34 // no-argument constructor
35 public LotteryPicker()
36 {
37 createUserInterface();
38 }
39
40 // create and position GUI components; register event handlers
41 private void createUserInterface()
42 {
43 // get content pane for attaching GUI components
44 Container contentPane = getContentPane();
45
46 // enable explicit positioning of GUI components
47 contentPane.setLayout( null );
48
49 // set up threeJLabel
50 threeJLabel = new JLabel();
51 threeJLabel.setText( "Three number lottery:" );
52 threeJLabel.setBounds( 16, 18, 132, 16 );
53 contentPane.add( threeJLabel );
54
55 // set up output3JTextField
56 output3JTextField = new JTextField();
57 output3JTextField.setBounds( 152, 16, 124, 23 );
58 output3JTextField.setHorizontalAlignment( JTextField.CENTER );
59 output3JTextField.setEditable( false );
60 contentPane.add( output3JTextField );
61
62 // set up fourJLabel
63 fourJLabel = new JLabel();
64 fourJLabel.setText( "Four number lottery:" );
65 fourJLabel.setBounds( 16, 50, 132, 16 );
66 contentPane.add( fourJLabel );
67
68 // set up output4JTextField
69 output4JTextField = new JTextField();
70 output4JTextField.setBounds( 152, 48, 124, 23 );
71 output4JTextField.setHorizontalAlignment( JTextField.CENTER );
72 output4JTextField.setEditable( false );
73 contentPane.add( output4JTextField );
74
75 // set up fiveJLabel
76 fiveJLabel = new JLabel();
77 fiveJLabel.setText( "Five number lottery:" );
78 fiveJLabel.setBounds( 16, 82, 132, 16 );
79 contentPane.add( fiveJLabel );
80
81 // set up output5JTextField
82 output5JTextField = new JTextField();
83 output5JTextField.setBounds( 152, 80, 124, 23 );
84 output5JTextField.setHorizontalAlignment( JTextField.CENTER );
85 output5JTextField.setEditable( false );
86 contentPane.add( output5JTextField );
87
88 // set up fivePlus1JLabel
89 fivePlus1JLabel = new JLabel();
90 fivePlus1JLabel.setText( "Five number + 1 lottery:" );
91 fivePlus1JLabel.setBounds( 16, 114, 132, 16 );
92 contentPane.add( fivePlus1JLabel );
32 private Random generator = new Random();
33
34 // no-argument constructor
35 public LotteryPicker()
36 {
37 createUserInterface();
38 }
39
40 // create and position GUI components; register event handlers
41 private void createUserInterface()
42 {
43 // get content pane for attaching GUI components
44 Container contentPane = getContentPane();
45
46 // enable explicit positioning of GUI components
47 contentPane.setLayout( null );
48
49 // set up threeJLabel
50 threeJLabel = new JLabel();
51 threeJLabel.setText( "Three number lottery:" );
52 threeJLabel.setBounds( 16, 18, 132, 16 );
53 contentPane.add( threeJLabel );
54
55 // set up output3JTextField
56 output3JTextField = new JTextField();
57 output3JTextField.setBounds( 152, 16, 124, 23 );
58 output3JTextField.setHorizontalAlignment( JTextField.CENTER );
59 output3JTextField.setEditable( false );
60 contentPane.add( output3JTextField );
61
62 // set up fourJLabel
63 fourJLabel = new JLabel();
64 fourJLabel.setText( "Four number lottery:" );
65 fourJLabel.setBounds( 16, 50, 132, 16 );
66 contentPane.add( fourJLabel );
67
68 // set up output4JTextField
69 output4JTextField = new JTextField();
70 output4JTextField.setBounds( 152, 48, 124, 23 );
71 output4JTextField.setHorizontalAlignment( JTextField.CENTER );
72 output4JTextField.setEditable( false );
73 contentPane.add( output4JTextField );
74
75 // set up fiveJLabel
76 fiveJLabel = new JLabel();
77 fiveJLabel.setText( "Five number lottery:" );
78 fiveJLabel.setBounds( 16, 82, 132, 16 );
79 contentPane.add( fiveJLabel );
80
81 // set up output5JTextField
82 output5JTextField = new JTextField();
83 output5JTextField.setBounds( 152, 80, 124, 23 );
84 output5JTextField.setHorizontalAlignment( JTextField.CENTER );
85 output5JTextField.setEditable( false );
86 contentPane.add( output5JTextField );
87
88 // set up fivePlus1JLabel
89 fivePlus1JLabel = new JLabel();
90 fivePlus1JLabel.setText( "Five number + 1 lottery:" );
91 fivePlus1JLabel.setBounds( 16, 114, 132, 16 );
92 contentPane.add( fivePlus1JLabel );
93
94 // set up output5Plus1JTextField
95 output5Plus1JTextField = new JTextField();
96 output5Plus1JTextField.setBounds( 152, 112, 92, 23 );
97 output5Plus1JTextField.setHorizontalAlignment(
98 JTextField.CENTER );
99 output5Plus1JTextField.setEditable( false );
100 contentPane.add( output5Plus1JTextField );
101
102 // set up outputExtra1JTextField
103 outputExtra1JTextField = new JTextField();
104 outputExtra1JTextField.setBounds( 252, 112, 24, 23 );
105 outputExtra1JTextField.setHorizontalAlignment(
106 JTextField.CENTER );
107 outputExtra1JTextField.setEditable( false );
108 contentPane.add( outputExtra1JTextField );
109
110 // set up generateJButton
111 generateJButton = new JButton();
112 generateJButton.setText( "Generate" );
113 generateJButton.setBounds( 180, 152, 96, 24 );
114 contentPane.add( generateJButton );
115 generateJButton.addActionListener(
116
117 new ActionListener() // anonymous inner class
118 {
119 // event handler called when generateJButton is clicked
120 public void actionPerformed( ActionEvent event )
121 {
122 generateJButtonActionPerformed( event );
123

Computer Science & Information Technology

You might also like to view...

Typically __________ causes an error that causes an exception to be thrown.,

a) The user who enters data b) The operating system that freezes. c) The author of the application code d) The class member function author e) None of the above

Computer Science & Information Technology

In an HTML document, the tags:

A) instruct the Web browser how to format the text B) instruct the Web browser where to place images C) instruct the Web browser what to do when the user clicks on a link D) all of the above

Computer Science & Information Technology

________ is one of the components most vulnerable to network attacks.

a. TCP/IP b. WINS c. DHCP d. DNS

Computer Science & Information Technology

Which statement dynamically assigns an image named car in the drawable folder to an ImageView control?

A. ?car.setImageResource(R.drawable.image);? B. ?image.setImageResource(car.R.drawable);? C. image.setImageResource(R.drawable.car);? D. SetImageResource.image(R.drawable.car);?

Computer Science & Information Technology