The workshop for this hour takes a person’s weight and displays it under several different units. The applet takes two parameters: a weight in pounds and the name of the person who weighs that amount. The weight is used to figure out the person’s weight in ounces, kilograms, and metric tons, which are all displayed.
Create a new empty Java file called WeightScale
, enter the text of Listing 17.3 into the file, and save the file.
1: import java.awt.*;
2:
3: public class WeightScale extends javax.swing.JApplet {
4: float lbs = 0F;
5: float ozs;
6: float kgs;
7: float metricTons;
8: String name = "somebody";
9:
10: public void init() {
11: String lbsValue = getParameter("weight");
12: if (lbsValue != null) {
13: lbs = Float.valueOf(lbsValue);
14: }
15: String personValue = getParameter("person");
16: if (personValue != null) {
17: name = personValue;
18: }
19: ozs = (float) (lbs * 16);
20: kgs = (float) (lbs / 2.204623);
21: metricTons = (float) (lbs / 2204.623);
22: }
23:
24: public void paint(Graphics screen) {
25: Graphics2D screen2D = (Graphics2D) screen;
26: screen2D.drawString("Studying the weight of " + name, 5, 30);
27: screen2D.drawString("In pounds: " + lbs, 55, 50);
28: screen2D.drawString("In ounces: " + ozs, 55, 70);
29: screen2D.drawString("In kilograms: " + kgs, 55, 90);
30: screen2D.drawString("In metric tons: " + metricTons, 55, 110);
31: }
32: }
The init()
method is where the two parameters are loaded into the applet. Because parameters come from the web page as strings, the weight
parameter must be converted to a floating-point number to use it in mathematical expressions. The Float
object class includes a valueOf(
String)
that returns a string’s value as a Float
. This value is automatically unboxed to the float
variable type in Line 13.
Lines 19–21 are used to convert the lbs
variable into different units of measure. Each statement has (float)
in front of the conversion equation. This is used to cast the result of the equation into a floating-point number.
The paint()
method of the applet uses drawString()
to display a line of text. The paint()
method has three arguments: the text to display, the x position, and the y position where the text should be shown.
Before you can test the WeightScale
applet, you must create a web page that contains the applet. Create a new HTML file in NetBeans called WeightScale
. Enter Listing 17.4 into the file, and then open the newly created web page in a browser—right-click WeightScale.html
in the Project pane and choose View.
1: <applet code="WeightScale.class" codebase="..\..\build\classes"
2: height="170" width="210">
3: <param name="person" value="Konishiki">
4: <param name="weight" value="605">
5: </applet>
This demonstration uses Konishiki, an American-born sumo wrestling champion who weighed 605 pounds when he competed, making him the largest of the immodest, bikini-wearing behemoths. You can substitute anyone whose weight is either exemplary or well-known. Figure 17.2 shows an example of output from the applet.
To make the applet display a different name along with a different value for the weight
parameter, you have to change the WeightScale.html
file. The applet itself continues to work correctly.
18.222.21.139