// File: TankApp2.java // author: David Fleming // created: 7/13/96 import java.awt.*; import java.applet.*; public class TankApplet2 extends Applet { Tank tank; Graphics g; Button go; Choice incDec; Choice amt; Label by; Label gallons; TextField text_Field; float overFlowCheck; float underFlowCheck; public TankApplet2() { // create tank object tank = new Tank( 0.0f ); // create "GO" button go = new Button("GO"); // create inc/dec choice box w/ choices of "Inc" and "Dec" incDec = new Choice(); incDec.addItem("Inc"); incDec.addItem("Dec"); // create amount choice box w/ choices from "1" to "10" amt = new Choice(); amt.addItem("1"); amt.addItem("2"); amt.addItem("3"); amt.addItem("4"); amt.addItem("5"); amt.addItem("6"); amt.addItem("7"); amt.addItem("8"); amt.addItem("9"); amt.addItem("10"); // create text box for gallon read out text_Field = new TextField(20); // create "by" label by = new Label("by"); gallons = new Label("gallons"); } public void init() { setLayout( new BorderLayout() ); Panel p = new Panel(); p.setLayout(new FlowLayout()); p.add(incDec); p.add(by); p.add(amt); p.add(gallons); p.add(go); add("North", text_Field); add("West", p); add("South", tank); updateDisplay(); } private void updateDisplay() { text_Field.setText(String.valueOf(tank.howFull())); text_Field.paint(g); Graphics g = this.getGraphics(); paint(g); } public boolean action(Event evt, Object arg) { Float amtToChange; amtToChange=new Float(amt.getSelectedItem()); if("GO".equals(arg)) { if( incDec.getSelectedItem() == "Inc" ) { overFlowCheck=tank.howFull() + amtToChange.floatValue(); if(overFlowCheck <= tank.tankCapacity() ) { tank.addFluid(amtToChange.floatValue()); updateDisplay(); return true; } else { text_Field.setText("Tank is Full!"); text_Field.paint(g); return false; }; } else if( incDec.getSelectedItem() == "Dec" ) { underFlowCheck=tank.howFull()-amtToChange.floatValue(); if(underFlowCheck >= 0.0) { tank.removeFluid(amtToChange.floatValue()); add("South",tank); updateDisplay(); return true; } else { text_Field.setText("Tank is Empty"); text_Field.paint(g); return false; }; } else { return false; }; } else { return false; }; } }