1 package balloonpeople; 2 3 import painter.SPainter; 4 5 import javax.swing.*; 6 import java.awt.*; 7 import java.awt.geom.Point2D; 8 import java.util.ArrayList; 9 import java.util.Scanner; 10 11 public class BalloonFamily { 12 private ArrayList<BalloonPerson> people; 13 14 15 public BalloonFamily(int numberOfPeople) { 16 this.people = new ArrayList<>(numberOfPeople); 17 18 for (int i = 0; i < numberOfPeople; i++) { 19 String name = getString("What is the Name of Family Member " + (i + 1)); 20 int age = getNumber("Age of Family Member " + (i + 1)); 21 double height = getNumberDouble("Height of Family Member " + (i + 1)); 22 people.add(new BalloonPerson(name, age, height)); 23 } 24 } 25 26 public String toString() { 27 StringBuilder returnString = new StringBuilder(); 28 29 for (int i = 0; i < people.size(); i++) { 30 returnString.append(people.get(i)); 31 } 32 return returnString.toString(); 33 } 34 35 public void paint(SPainter painter) { 36 int paddingX = 300; 37 //Starting Position 38 int startingX = 200; 39 int startingY = 200; 40 painter.moveTo(new Point2D.Double(startingX, startingY)); 41 for (int i = 0; i < people.size(); i++) { 42 people.get(i).paintPerson(painter); 43 painter.moveTo(new Point2D.Double(people.get(i).getRightEdgeX() + paddingX, people.get(i).getHeadPositionY())); 44 if (people.get(i).isAtEdge(painter)) { 45 painter.wash(); 46 painter.moveToCenter(); 47 painter.setFontSize(25); 48 painter.setColor(Color.red); 49 painter.draw("Error: Your picture is too big, try adding less family"); 50 painter.mbk(30); 51 painter.draw("Auto-shrink might be added soon"); 52 } 53 } 54 } 55 private int getNumber(String prompt) { 56 String nss = JOptionPane.showInputDialog(null, prompt + "?"); 57 Scanner scanner = new Scanner(nss); 58 return scanner.nextInt(); 59 } 60 61 private double getNumberDouble(String prompt) { 62 String nss = JOptionPane.showInputDialog(null, prompt + "?"); 63 Scanner scanner = new Scanner(nss); 64 return scanner.nextDouble(); 65 } 66 67 private String getString(String prompt) { 68 String nss = JOptionPane.showInputDialog(null, prompt + "?"); 69 Scanner scanner = new Scanner(nss); 70 return scanner.next(); 71 } 72 } 73