diff --git a/doggie.gif b/doggie.gif new file mode 100644 index 0000000..3bee476 Binary files /dev/null and b/doggie.gif differ diff --git a/doggie.java b/doggie.java index 3916df2..7f6163d 100644 --- a/doggie.java +++ b/doggie.java @@ -1,6 +1,26 @@ -// Create a doggie +import java.awt.FlowLayout; +import java.net.URL; +import javax.swing.Icon; +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; -public class doggie { + +/** + * Creates a doggie. The doggie can waggle its tail, talk, or even jump + */ +public class Doggie { + + private static final String DOGGIE_GIF = "./doggie.gif"; + private static final String DOGGIE_JFRAME_NAME = "Jumping Doggies"; + + /** + * Waggles doggie's tail + * + * @param happy happiness of doggie as an integer + * @return doggie's final happiness as an integer + */ public static int waggle(int happy) { if (happy <= 10) { System.out.println("waggle"); @@ -11,6 +31,37 @@ public static int waggle(int happy) { } } + /** + * Displays a line of jumping doggiess + * + * @param numOfDogs the number of jumping doggies to display + * + */ + public static void lineOfJumpingDoggies(int numOfDogs) { + + URL url = Doggie.class.getResource(DOGGIE_GIF); + Icon doggie = new ImageIcon(url); + JFrame frame = new JFrame(DOGGIE_JFRAME_NAME); + JPanel container = new JPanel(); + container.setLayout(new FlowLayout(FlowLayout.CENTER)); + + for (int i = 0; i < numOfDogs; i++) { + container.add(new JLabel(doggie)); + } + + frame.add(container); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.pack(); + frame.setLocationRelativeTo(null); + frame.setVisible(true); + } + + /** + * Makes doggie talk + * + * @param amount doggie's current loquaciousness as an integer + * @return doggie's final loquaciousness as an integer + */ public static int talk(int amount) { if (amount == 0) { System.out.println("quiet"); @@ -23,4 +74,4 @@ public static int talk(int amount) { } } -} \ No newline at end of file +} diff --git a/doggieTester.java b/doggieTester.java index 05c8835..99e649a 100644 --- a/doggieTester.java +++ b/doggieTester.java @@ -1,8 +1,10 @@ -// Tester of doggie - -public class doggieTester { +/** + * Tests the Doggie class. + */ +public class DoggieTester { public static void main(String[] args) { - doggie.waggle(2); //must add class name (doggie) for static methods - doggie.talk(13); + Doggie.waggle(2); // must add class name (doggie) for static methods + Doggie.talk(13); + Doggie.lineOfJumpingDoggies(10); } -} \ No newline at end of file +} diff --git a/penguin.gif b/penguin.gif new file mode 100644 index 0000000..3826ccc Binary files /dev/null and b/penguin.gif differ diff --git a/penguin.java b/penguin.java index 5d5d296..ee6e0c0 100644 --- a/penguin.java +++ b/penguin.java @@ -1,6 +1,26 @@ -// Create a penguin +import java.awt.FlowLayout; +import java.net.URL; +import javax.swing.Icon; +import javax.swing.ImageIcon; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; -public class penguin { + +/** + * Creates a penguin. Penguin can waddle, talk or dance + */ +public class Penguin { + + private static final String PENGUIN_GIF = "./penguin.gif"; + private static final String PENGUIN_JFRAME_NAME = "Dancing Penguins"; + + /** + * Makes penguin waddle + * + * @param happy penguin's current happiness as an integer + * @return penguin's final happiness as an integer + */ public static int waddle(int happy) { if (happy <= 10) { System.out.println("waddle"); @@ -11,6 +31,37 @@ public static int waddle(int happy) { } } + /** + * Displays a line of dancing penguins + * + * @param numOfPenguins the number of dancing penguins to display + * + */ + public static void lineOfDancingPenguins(int numOfPenguins) { + + URL url = Doggie.class.getResource(PENGUIN_GIF); + Icon penguin = new ImageIcon(url); + JFrame frame = new JFrame(PENGUIN_JFRAME_NAME); + JPanel container = new JPanel(); + container.setLayout(new FlowLayout(FlowLayout.CENTER)); + + for (int i = 0; i < numOfPenguins; i++) { + container.add(new JLabel(penguin)); + } + + frame.add(container); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.pack(); + frame.setLocationRelativeTo(null); + frame.setVisible(true); + } + + /** + * Makes penguin talk + * + * @param amount penguin's current loquaciousness as an integer + * @return penguin's final loquaciousness as an integer + */ public static int talk(int amount) { if (amount == 0) { System.out.println("quiet"); @@ -22,4 +73,4 @@ public static int talk(int amount) { return talk(amount / 5) + talk(amount - 1); } } -} \ No newline at end of file +} diff --git a/penguinTester.java b/penguinTester.java index cf00273..cdae9fe 100644 --- a/penguinTester.java +++ b/penguinTester.java @@ -1,8 +1,10 @@ -// Tester of penguin - -public class penguinTester { +/** + * Tests the Penguin class + */ +public class PenguinTester { public static void main(String[] args) { - penguin.waddle(2); //must add class name (penguin) for static methods - penguin.talk(7); + Penguin.waddle(2); // must add class name (penguin) for static methods + Penguin.talk(7); + Penguin.lineOfDancingPenguins(10); } -} \ No newline at end of file +}