ptg7068951
268 HOUR 19:Creating a Threaded Program
LISTING 19.1 The Full Text of PrimeFinder.java
1: importjava.awt.*;
2: importjavax.swing.*;
3: importjava.awt.event.*;
4:
5: classPrimeFinder extendsJFrame implementsRunnable, ActionListener {
6: Thread go;
7: JLabel howManyLabel;
8: JTextField howMany;
9: JButton display;
10: JTextArea primes;
11:
12: PrimeFinder() {
13: super(“Find Prime Numbers”);
14: setLookAndFeel();
15: setSize(400, 300);
16: setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
17: BorderLayout bord = new BorderLayout();
18: setLayout(bord);
19:
20: howManyLabel = new JLabel(“Quantity:“);
21: howMany = new JTextField(“400”, 10);
22: display = new JButton(“Display primes”);
23: primes = new JTextArea(8, 40);
24:
25: display.addActionListener(this);
26: JPanel topPanel = new JPanel();
27: topPanel.add(howManyLabel);
28: topPanel.add(howMany);
29: topPanel.add(display);
30: add(topPanel, BorderLayout.NORTH);
31:
32: primes.setLineWrap(true);
33: JScrollPane textPane = new JScrollPane(primes);
34: add(textPane, BorderLayout.CENTER);
35:
36: setVisible(true);
37: }
38:
39: public voidactionPerformed(ActionEvent event) {
40: display.setEnabled(false);
41: if (go == null) {
42: go = new Thread(this);
43: go.start();
44: }
45: }
46:
47: public voidrun() {
48: int quantity = Integer.parseInt(howMany.getText());
49: int numPrimes = 0;
50: // candidate: the number that might be prime
51: int candidate = 2;