"Clean" Code for the Calculator Exercise
| import java.awt.*; import java.applet.Applet; public class Calculator extends Applet { private Button makeButton(String label, Color color) { Button b = new Button(label); b.setBackground (color); b.setFont (new Font ("Courier", Font.BOLD, 10)); return b; } private Panel makePanel (LayoutManager lm, Color c) { Panel p = new Panel( ); p.setLayout (lm); p.setBackground (c); return p; } private void makeButtons( ) { Color lightRed = new Color(255,100,100); Color lightBlue = new Color(100,100,255); Color yellow = new Color(255,255,0); c = makeButton("C", lightRed); eq = makeButton("=", lightBlue); div = makeButton("/", lightBlue); times = makeButton("*", lightBlue); d7 = makeButton("7", yellow); d8 = makeButton("8", yellow); d9 = makeButton("9", yellow); minus = makeButton("-", lightBlue); d4 = makeButton("4", yellow); d5 = makeButton("5", yellow); d6 = makeButton("6", yellow); plus = makeButton("+", lightBlue); d1 = makeButton("1", yellow); d2 = makeButton("2", yellow); d3 = makeButton("3", yellow); d0 = makeButton("0", yellow); dp = makeButton(".", yellow); eq2 = makeButton("=", lightBlue); } public void init( ) { background = new Color(200,255,255); this.setLayout(new FlowLayout(FlowLayout.CENTER,4,1)); result = new Label("0.00000", Label.RIGHT); result.setBackground(new Color(255,255,255)); add(result); makeButtons( ); row1 = makePanel(new FlowLayout(FlowLayout.LEFT,4,2),background); row1.add(c); row1.add(eq); row1.add(div); row1.add(times); row2 = makePanel(new FlowLayout(FlowLayout.LEFT,4,2),background); row2.add(d7); row2.add(d8); row2.add(d9); row2.add(minus); row3 = makePanel(new FlowLayout(FlowLayout.LEFT,4,2),background); row3.add(d4); row3.add(d5); row3.add(d6); row3.add(plus); add(row1); add(row2); add(row3); p12 = makePanel(new BorderLayout(2,2), background); p12.add("West",d1); p12.add("East",d2); p120 = makePanel(new BorderLayout(2,2), background); p120.add("North",p12); p120.add("South",d0); p3p = makePanel(new BorderLayout(2,2), background); p3p.add("North",d3); p3p.add("South",dp); p3peq = makePanel(new BorderLayout(2,2), background); p3peq.add("West",p3p); p3peq.add("East",eq2); add(p120); add(p3peq); setBackground(background); } public void start () { setSize(row1.getSize( ).width,8*d1.getSize( ).height); validate( ); // refreshes the applet } public Panel row1, row2, row3, p12, p120, p3p, p3peq; private Button c, eq, div, times, d7, d8, d9, minus, d4, d5, d6, plus, d1, d2, d3, d0, dp, eq2; private Color background; private Label result; } |