BalloonFamily.java
1    package balloonpeople;
2    
3    import painter.SPainter;
4    import javax.swing.*;
5    import java.util.ArrayList;
6    import java.util.Scanner;
7    
8    
9    public class BalloonFamily {
10       private ArrayList<BalloonPerson> balloonpeople;
11   
12       public BalloonFamily(int nofP) {
13           this.balloonpeople = new ArrayList<>(nofP);
14           int i = 0;
15           while (i < nofP) {
16               String name = getName("Name of Family Member " + (i + 1));
17               int age = getAge("Age of Family Member " + (i + 1));
18               double height = getHeight("Height of Family Member " + (i + 1));
19               balloonpeople.add(new BalloonPerson(name, age ,height));
20               i = i + 1;
21           }
22       }
23   
24       private String getName(String prompt) {
25           String nss = JOptionPane.showInputDialog(null, prompt + "?");
26           Scanner scanner = new Scanner(nss);
27           return scanner.next();
28       }
29   
30       private int getAge(String prompt) {
31           String nss = JOptionPane.showInputDialog(null, prompt + "?");
32           Scanner scanner = new Scanner(nss);
33           return scanner.nextInt();
34       }
35   
36       private double getHeight(String prompt) {
37           String nss = JOptionPane.showInputDialog(null, prompt + "?");
38           Scanner scanner = new Scanner(nss);
39           return scanner.nextDouble();
40   
41       }
42   
43       public String toString(){
44           int i = 0;
45           while (i < balloonpeople.size()) {
46               i = i + 1;
47           }
48           return (balloonpeople.toString());
49       }
50   
51       public void paint(SPainter painter) {
52           double X = painter.getWidth()/balloonpeople.size();
53           if ( X < 100) {
54               painter.draw("Error; Too big family picture");
55           } else {
56               painter.mrt(painter.getWidth()/2);
57               painter.mlt(X/2);
58               balloonpeople.get(0).paint(painter);
59               int i = 1;
60               while (i < balloonpeople.size()) {
61                   painter.mlt(X);
62                   balloonpeople.get(i).paint(painter);
63                   i = i + 1;
64               }
65           }
66       }
67   }
68   
69