The following modification of the GreeterApp class is an implementation of the High-Low Game:
public class HighLowApp { private KeyboardReader reader; private int secretNumber; public HighLowApp() { reader = new KeyboardReader(); secretNumber = 1 + (int)(Math.random() * 100); } // HighLowApp() constructorpublic void run() { int userGuess = -1; reader.display("Guess my secret number between 1 and 100."); while (userGuess != secretNumber) { reader.prompt("Please input your guess here > "); userGuess = reader.getKeyboardInteger(); if (userGuess > secretNumber) reader.display("Your guess was too high."); if (userGuess < secretNumber) reader.display("Your guess was too low."); } // while reader.display("Congratulations. Your guess was correct."); } // run()public static void main(String args[]) { HighLowApp app = new HighLowApp(); app.run(); } // main() } // HighLowApp class
Solution 4.2
The following modification of GreeterGUI eliminates the JButton.
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class GreeterGUI2 extends JFrame implements ActionListener { private JTextArea display; private JTextField inField; private Greeter greeter; public GreeterGUI2(String title) { greeter = new Greeter(); buildGUI(); setTitle(title); pack(); setVisible(true); } // GreeterGUI2()
[Page 189]
private void buildGUI() { Container contentPane = getContentPane(); contentPane.setLayout(new BorderLayout()); display = new JTextArea(10,30); inField = new JTextField(10); inField.addActionListener(this); JPanel inputPanel = new JPanel(); inputPanel.add(new JLabel("Input your name and type enter: ")); inputPanel.add(inField); contentPane.add("Center", display); contentPane.add("South", inputPanel); } // buildGUI()public void actionPerformed(ActionEvent e) { if (e.getSource() == inField) { String name = inField.getText(); display.append(greeter.greet(name) + "\n"); } } // actionPerformed() } // GreeterGUI2 class
Solution 4.3
Java code that prints out the sum of the squares of a set of integers read from a file named "numbers.txt":
import java.io.*; import java.util.Scanner; public class NumberFileReader { private Scanner fileScan; // For file inputpublic NumberFileReader(String fName) { try { File theFile = new File(fName); fileScan = new Scanner(theFile); } catch (IOException e) { e.printStackTrace(); } // catch() } // NumberFileReader()public void readNumbers() { int num = 0; // To store integers readint num = 0: // To store sum of squareswhile (fileScan.hasNextInt()) { num = fileScan.nextInt(); sum = sum + num * num; } // while System.out.println("The sum of squares = " + sum); } // readNumbers()public static void main(String[] args) { NumberFileReader nfr = new NumberFileReader("numbers.txt"); nfr.readNumbers() } // main() } // NumberFileReader