CMIS 102A 0. Make a program like the Bouncing applet. The "ball" has a current direction (NE, SE, SW, NW, which can be an int variable) and moves in that direction until it hits a "wall" when it "bounces" in the natural way (e.g. if going NE and hits top wall will ricochet off it to the SE direction, if going NE and hits right wall it changes to NW). 1. Using the SumAvgMax.java program as a base and looking at whileloops.java again, make a program that inputs strings until the user inputs "quit". Count the number of inputted strings, the shortest and longest strings, the sum of the number of characters in the all the strings (the length of a string is available with the .length() method: String s="asdf"; s.length() evaluates to the length of the string, 4 in this example Report this information in a JOptionPane. Display the length of each inputted string in the status bar. 2. Back to your SumAvgMax program. Add to its already awesome power these: Count the number of times the data transition from positive to negative and negative to positive. Example: 5 2 8 -2 -4 1 -3 has 3 such transtitions (8 to -2, -4 to 1, 1 to -3) Count the number of consecutive duplicates. Example: 5 2 8 8 2 4 4 4 3 has 3 "duplicates": 8 8, 4 4, 4 4(second time) For each positive integer output a string of that many *'s in a JOptionPane message. Hint: loop concatenating a * character to a string. In the paint method, for the smallest, largest, and average values of the numbers draw a line of that many *'s. The fun just never stops!