Java Reference
In-Depth Information
13
import java.awt.BorderLayout;
14
import java.awt.GridLayout;
15
import java.awt.event.ActionListener;
16
import java.awt.event.ActionEvent;
17
import java.util.concurrent.ExecutionException;
18
import java.beans.PropertyChangeListener;
19
import java.beans.PropertyChangeEvent;
20
21
public class FindPrimes extends JFrame
22
{
23
private final JTextField highestPrimeJTextField = new JTextField();
24
private final JButton getPrimesJButton = new JButton( "Get Primes" );
25
private final JTextArea displayPrimesJTextArea = new JTextArea();
26
private final JButton cancelJButton = new JButton( "Cancel" );
27
private final JProgressBar progressJProgressBar = new JProgressBar();
28
private final JLabel statusJLabel = new JLabel();
29
private PrimeCalculator calculator;
30
31
// constructor
32
public FindPrimes()
33
{
34
super ( "Finding Primes with SwingWorker" );
35
setLayout( new BorderLayout());
36
37
// initialize panel to get a number from the user
38
JPanel northJPanel = new JPanel();
39
northJPanel.add( new JLabel( "Find primes less than: " ));
40
highestPrimeJTextField.setColumns( 5 );
41
northJPanel.add(highestPrimeJTextField);
42
getPrimesJButton.addActionListener(
43
new ActionListener()
44
{
45
public void actionPerformed(ActionEvent e)
46
{
47
progressJProgressBar.setValue( 0 ); // reset JProgressBar
48
displayPrimesJTextArea.setText( "" ); // clear JTextArea
49
statusJLabel.setText( "" ); // clear JLabel
50
51
int number; // search for primes up through this value
52
53
try
54
{
55
// get user input
56
number = Integer.parseInt(
57
highestPrimeJTextField.getText());
58
}
59
catch (NumberFormatException ex)
60
{
61
statusJLabel.setText( "Enter an integer." );
62
return ;
63
}
64
Fig. 23.27 | Using a SwingWorker to display prime numbers and update a JProgressBar
while the prime numbers are being calculated. (Part 2 of 4.)
Search WWH ::




Custom Search