(Digit Extraction) Complete an application that allows the user to enter a five-digit number into a JTextField. Your application should then separate the number into its indi- vidual digits and display each digit in five uneditable JTextFields (Fig. 5.36). All of the code you need to write should go inside the enterJButtonActionPerformed event handler. This event handler is declared in lines 124–127 of the template file DigitExtractor.java. Before you begin, copy the C:\Examples\Tutorial04\Exercises\DigitExtractor direc- tory to your C:\SimplyJava directory. You should start writing your code at line 126 in the file. Obtain the number input by the user in enterNumberJTextField, convert it to an int and store it in int variable number. [Hint: You can use the % operato


```
1 // DigitExtractor.java
2 // Application that separates a five-digit number into digits.
3 import java.awt.*;
4 import java.awt.event.*;
5 import javax.swing.*;
6
7 public class DigitExtractor extends JFrame
8 {
9 // JLabel and JTextField for user to input number
10 private JLabel enterNumberJLabel;
11 private JTextField enterNumberJTextField;
12
13 // JLabel and JTextFields for displaying extracted digits
14 private JLabel extractedDigitsJLabel;
15 private JTextField firstNumberJTextField;
16 private JTextField secondNumberJTextField;
17 private JTextField thirdNumberJTextField;
18 private JTextField fourthNumberJTextField;
19 private JTextField fifthNumberJTextField;
20
21 // JButton to initiate extraction of digits
22 private JButton enterJButton;
23
24 // no-argument constructor
25 public DigitExtractor()
26 {
27 createUserInterface();
28 }
29
30 // create and position GUI components; register event handlers
31 private void createUserInterface()
32 {
33 // get content pane for attaching GUI components
34 Container contentPane = getContentPane();
35
36 // enable explicit positioning of GUI components
37 contentPane.setLayout( null );
38
39 // set up enterNumberJLabel
40 enterNumberJLabel = new JLabel();
41 enterNumberJLabel.setText( "Enter five-digit number:" );
42 enterNumberJLabel.setBounds( 10, 10, 150, 24 );
43 contentPane.add( enterNumberJLabel );
44
45 // set up enterNumberJTextField
46 enterNumberJTextField = new JTextField();
47 enterNumberJTextField.setBounds( 160, 10, 110, 24 );
48 contentPane.add( enterNumberJTextField );
49
50 // set up extractedDigitsJLabel
51 extractedDigitsJLabel = new JLabel();
52 extractedDigitsJLabel.setText( "Extracted digits:" );
53 extractedDigitsJLabel.setBounds( 10, 45, 150, 24 );
54 contentPane.add( extractedDigitsJLabel );
55
56 // set up firstNumberJTextField
57 firstNumberJTextField = new JTextField();
58 firstNumberJTextField.setEditable( false );
59 firstNumberJTextField.setBounds( 160, 45, 15, 24 );
60 firstNumberJTextField.setHorizontalAlignment(
61 JTextField.CENTER );
62 contentPane.add( firstNumberJTextField );
63
64 // set up secondNumberJTextField
65 secondNumberJTextField = new JTextField();
66 secondNumberJTextField.setEditable( false );
67 secondNumberJTextField.setBounds( 180, 45, 15, 24 );
68 secondNumberJTextField.setHorizontalAlignment(
69 JTextField.CENTER );
70 contentPane.add( secondNumberJTextField );
71
72 // set up thirdNumberJTextField
73 thirdNumberJTextField = new JTextField();
74 thirdNumberJTextField.setEditable( false );
75 thirdNumberJTextField.setBounds( 200, 45, 15, 24 );
76 thirdNumberJTextField.setHorizontalAlignment(
77 JTextField.CENTER );
78 contentPane.add( thirdNumberJTextField );
79
80 // set up fourthNumberJTextField
81 fourthNumberJTextField = new JTextField();
82 fourthNumberJTextField.setEditable( false );
83 fourthNumberJTextField.setBounds( 220, 45, 15, 24 );
84 fourthNumberJTextField.setHorizontalAlignment(
85 JTextField.CENTER );
86 contentPane.add( fourthNumberJTextField );
87
88 // set up fifthNumberJTextField
89 fifthNumberJTextField = new JTextField();
90 fifthNumberJTextField.setEditable( false );
91 fifthNumberJTextField.setBounds( 240, 45, 15, 24 );
92 fifthNumberJTextField.setHorizontalAlignment(
93 JTextField.CENTER );
94 contentPane.add( fifthNumberJTextField );
95
96 // set up enterJButton
97 enterJButton = new JButton ();
98 enterJButton.setText( "Enter" );
99 enterJButton.setBounds( 280, 10, 70, 24 );
100 enterJButton.addActionListener(
101
102 new ActionListener() // anonymous inner class
103 {
104 // called when enterJButton is pressed
105 public void actionPerformed( ActionEvent event )
106 {
107 enterJButtonActionPerformed( event );
108 }
109
110 } // end anonymous inner class
111
112 ); // end call to addActionListener
113
114 contentPane.add( enterJButton );
115
116 // set properties of application’s window
117 setTitle( "Digit Extractor" ); // set title bar text
118 setSize( 370, 105 ); // set window size
119 setVisible( true ); // display window
120
121 } // end method createUserInterface
122
123 // extract and display individual digits
124 private void enterJButtonActionPerformed( ActionEvent event )
125 {
126 int number =
127 Integer.parseInt( enterNumberJTextField.getText() );
128
129 int digit5 = number % 10; // get fifth digit
130 number = number / 10; // remove fifth digit from number
131
132 int digit4 = number % 10; // get fourth digit
133 number = number / 10; // remove fourth digit from number
134
135 int digit3 = number % 10; // get third digit
136 number = number / 10; // remove third digit from number
137
138 int digit2 = number % 10; // get second digit
139
140 int digit1 = number / 10; // get first digit
141
142 // display individual digits
143 firstNumberJTextField.setText( String.valueOf( digit1 ) );
144 secondNumberJTextField.setText( String.valueOf( digit2 ) );
145 thirdNumberJTextField.setText( String.valueOf( digit3 ) );
146 fourthNumberJTextField.setText( String.valueOf( digit4 ) );
147 fifthNumberJTextField.setText( String.valueOf( digit5 ) );
148
149 } // end method enterJButtonActionPerformed
150
151 // main method
152 public static void main( String args[] )
153 {
154 DigitExtractor application = new DigitExtractor();
155 application.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
156
157 } // end method main
158
159 } // end class DigitExtractor
```

Computer Science & Information Technology

You might also like to view...

Which of the following class members should usually be private?

a. Methods. b. Constructors. c. Variables (or fields). d. All of the above.

Computer Science & Information Technology

Left-click a slide to display a shortcut menu that allows you to select a specific slide to display.

Answer the following statement true (T) or false (F)

Computer Science & Information Technology

What's in the Slide Master, and how do you create and save a new one?

What will be an ideal response?

Computer Science & Information Technology

What routing protocol characteristic indicates the believability of the routing protocol (as opposed to other routing protocols)?

a. Weight b. Metric c. Administrative distance d. SPF algorithm

Computer Science & Information Technology