|
Calculator |
|
import diamondedge.util.*; import diamondedge.ado.*; import diamondedge.vb.*; import java.awt.*; import java.awt.event.*; public class Calculator extends AwtForm implements ActionListener { static final int NUMBER = -1; static final int CLEAR = 0; static final int ADD = 1; static final int SUBTRACT = 2; static final int TOTAL = 3; static final int MEMORY = 4; static final String OFFMSG = "Power Off"; private int nValue = 0; private int nTotal = 0; private int nMemory = 0; private int nAction = 0; private int nPrevious = 0; private boolean bOn = false; public Button cmdSubtract = new Button(); public Button cmdClear = new Button(); public Button cmdAdd = new Button(); public TextField txtDisplay = new TextField(); public Button cmdMRecall = new Button(); public Button cmdMSubtract = new Button(); public Button cmdTotal = new Button(); public Button cmdMAdd = new Button(); public Button cmdPower = new Button(); public AwtLabel Label1 = new AwtLabel(); public Button cmdNumber[] = new Button[10]; public Calculator() { } public void initialize() { if( initialized ) return; try { setLayout( null ); setName( "Calculator" ); setTitle( "Calculator" ); //unsup LinkTopic = "Form2"; //unsup PaletteMode = 1; setScaleHeight( 4335 ); setScaleWidth( 3510 ); setFormLocation( 217, 143 ); setSize( 234, 289 ); setFormSize( 234, 289 ); cmdPower.setName( "cmdPower" ); add( cmdPower ); cmdPower.setLabel( "ON/OFF" ); //unsup cmdPower.TabIndex = 18; cmdPower.setVisible( true ); cmdPower.setLocation( 144, 64 ); cmdPower.setSize( 73, 37 ); cmdMSubtract.setName( "cmdMSubtract" ); add( cmdMSubtract ); cmdMSubtract.setLabel( "M-" ); //unsup cmdMSubtract.TabIndex = 17; cmdMSubtract.setVisible( true ); cmdMSubtract.setLocation( 184, 152 ); cmdMSubtract.setSize( 33, 33 ); cmdMAdd.setName( "cmdMAdd" ); add( cmdMAdd ); cmdMAdd.setLabel( "M+" ); //unsup cmdMAdd.TabIndex = 16; cmdMAdd.setVisible( true ); cmdMAdd.setLocation( 184, 192 ); cmdMAdd.setSize( 33, 33 ); cmdMRecall.setName( "cmdMRecall" ); add( cmdMRecall ); cmdMRecall.setLabel( "M" ); //unsup cmdMRecall.TabIndex = 15; cmdMRecall.setVisible( true ); cmdMRecall.setLocation( 184, 112 ); cmdMRecall.setSize( 33, 33 ); cmdTotal.setName( "cmdTotal" ); add( cmdTotal ); cmdTotal.setLabel( "=" ); //unsup cmdTotal.TabIndex = 14; cmdTotal.setVisible( true ); cmdTotal.setLocation( 144, 232 ); cmdTotal.setSize( 73, 33 ); cmdAdd.setName( "cmdAdd" ); add( cmdAdd ); cmdAdd.setLabel( "+" ); //unsup cmdAdd.TabIndex = 13; cmdAdd.setVisible( true ); cmdAdd.setLocation( 144, 192 ); cmdAdd.setSize( 33, 33 ); cmdSubtract.setName( "cmdSubtract" ); add( cmdSubtract ); cmdSubtract.setLabel( "-" ); //unsup cmdSubtract.TabIndex = 12; cmdSubtract.setVisible( true ); cmdSubtract.setLocation( 144, 152 ); cmdSubtract.setSize( 33, 33 ); cmdClear.setName( "cmdClear" ); add( cmdClear ); cmdClear.setLabel( "C" ); //unsup cmdClear.TabIndex = 11; cmdClear.setVisible( true ); cmdClear.setLocation( 144, 112 ); cmdClear.setSize( 33, 33 ); if( cmdNumber[0] == null ) cmdNumber[0] = new Button(); cmdNumber[0].setName( "cmdNumber[0]" ); add( cmdNumber[0] ); cmdNumber[0].setLabel( "0" ); //unsup cmdNumber[0].TabIndex = 10; cmdNumber[0].setVisible( true ); cmdNumber[0].setLocation( 56, 232 ); cmdNumber[0].setSize( 33, 33 ); if( cmdNumber[9] == null ) cmdNumber[9] = new Button(); cmdNumber[9].setName( "cmdNumber[9]" ); add( cmdNumber[9] ); cmdNumber[9].setLabel( "9" ); //unsup cmdNumber[9].TabIndex = 9; cmdNumber[9].setVisible( true ); cmdNumber[9].setLocation( 96, 112 ); cmdNumber[9].setSize( 33, 33 ); if( cmdNumber[8] == null ) cmdNumber[8] = new Button(); cmdNumber[8].setName( "cmdNumber[8]" ); add( cmdNumber[8] ); cmdNumber[8].setLabel( "8" ); //unsup cmdNumber[8].TabIndex = 8; cmdNumber[8].setVisible( true ); cmdNumber[8].setLocation( 56, 112 ); cmdNumber[8].setSize( 33, 33 ); if( cmdNumber[7] == null ) cmdNumber[7] = new Button(); cmdNumber[7].setName( "cmdNumber[7]" ); add( cmdNumber[7] ); cmdNumber[7].setLabel( "7" ); //unsup cmdNumber[7].TabIndex = 7; cmdNumber[7].setVisible( true ); cmdNumber[7].setLocation( 16, 112 ); cmdNumber[7].setSize( 33, 33 ); if( cmdNumber[6] == null ) cmdNumber[6] = new Button(); cmdNumber[6].setName( "cmdNumber[6]" ); add( cmdNumber[6] ); cmdNumber[6].setLabel( "6" ); //unsup cmdNumber[6].TabIndex = 6; cmdNumber[6].setVisible( true ); cmdNumber[6].setLocation( 96, 152 ); cmdNumber[6].setSize( 33, 33 ); if( cmdNumber[5] == null ) cmdNumber[5] = new Button(); cmdNumber[5].setName( "cmdNumber[5]" ); add( cmdNumber[5] ); cmdNumber[5].setLabel( "5" ); //unsup cmdNumber[5].TabIndex = 5; cmdNumber[5].setVisible( true ); cmdNumber[5].setLocation( 56, 152 ); cmdNumber[5].setSize( 33, 33 ); if( cmdNumber[4] == null ) cmdNumber[4] = new Button(); cmdNumber[4].setName( "cmdNumber[4]" ); add( cmdNumber[4] ); cmdNumber[4].setLabel( "4" ); //unsup cmdNumber[4].TabIndex = 4; cmdNumber[4].setVisible( true ); cmdNumber[4].setLocation( 16, 152 ); cmdNumber[4].setSize( 33, 33 ); if( cmdNumber[3] == null ) cmdNumber[3] = new Button(); cmdNumber[3].setName( "cmdNumber[3]" ); add( cmdNumber[3] ); cmdNumber[3].setLabel( "3" ); //unsup cmdNumber[3].TabIndex = 3; cmdNumber[3].setVisible( true ); cmdNumber[3].setLocation( 96, 192 ); cmdNumber[3].setSize( 33, 33 ); if( cmdNumber[2] == null ) cmdNumber[2] = new Button(); cmdNumber[2].setName( "cmdNumber[2]" ); add( cmdNumber[2] ); cmdNumber[2].setLabel( "2" ); //unsup cmdNumber[2].TabIndex = 2; cmdNumber[2].setVisible( true ); cmdNumber[2].setLocation( 56, 192 ); cmdNumber[2].setSize( 33, 33 ); if( cmdNumber[1] == null ) cmdNumber[1] = new Button(); cmdNumber[1].setName( "cmdNumber[1]" ); add( cmdNumber[1] ); cmdNumber[1].setLabel( "1" ); //unsup cmdNumber[1].TabIndex = 1; cmdNumber[1].setVisible( true ); cmdNumber[1].setLocation( 16, 192 ); cmdNumber[1].setSize( 33, 33 ); txtDisplay.setName( "txtDisplay" ); add( txtDisplay ); //unsup txtDisplay.Alignment = 1; //unsup txtDisplay.FontUnderline = false; //unsup txtDisplay.FontStrikethrough = false; txtDisplay.setForeground( new Color( 0x80 ) ); txtDisplay.repaint(); //unsup txtDisplay.TabIndex = 0; txtDisplay.setVisible( true ); txtDisplay.setText( "" ); txtDisplay.setLocation( 16, 64 ); txtDisplay.setSize( 113, 37 ); txtDisplay.setFont( new Font("SansSerif", Font.PLAIN, 19) ); Label1.setName( "Label1" ); add( Label1 ); Label1.setAlignment( AwtLabel.CENTER ); Label1.setText( "CALCULATOR APPLET" ); //unsup Label1.FontUnderline = false; //unsup Label1.FontStrikethrough = false; //unsup Label1.TabIndex = 19; Label1.setVisible( true ); Label1.setLocation( 16, 24 ); Label1.setSize( 201, 17 ); Label1.setFont( new Font("SansSerif", Font.BOLD, 14) ); } catch(Exception _e_) { Err.set(_e_,"Calculator"); } if( !unloaded ) enableEvents(); super.initialize(); initialized = true; } // methods public void Calculate() { try { nValue = (int)Math.rint( VB.val( txtDisplay.getText() ) ); if( nAction == ADD ) { nTotal = nTotal + nValue; } else if( nAction == SUBTRACT ) { nTotal = nTotal - nValue; } else { nTotal = nValue; } txtDisplay.setText( String.valueOf( nTotal ) ); } catch(Exception _e_) { Err.set(_e_,"Calculate"); } } public void KeyPressed( String szKey ) { try { if( bOn ) { if( nPrevious == NUMBER ) { txtDisplay.setText( txtDisplay.getText() + szKey ); } else { txtDisplay.setText( szKey ); } nPrevious = NUMBER; } } catch(Exception _e_) { Err.set(_e_,"KeyPressed"); } } public void Form_Load() { try { txtDisplay.setEditable( !true ); txtDisplay.setText( "Power Off" ); } catch(Exception _e_) { Err.set(_e_,"Form_Load"); } } // events private void cmdSubtract_Click() { try { if( bOn ) { Calculate(); nPrevious = SUBTRACT; nAction = SUBTRACT; } } catch(Exception _e_) { Err.set(_e_,"cmdSubtract_Click"); } } private void cmdClear_Click() { try { if( bOn ) { nValue = 0; nTotal = 0; nMemory = 0; txtDisplay.setText( String.valueOf( nTotal ) ); nPrevious = CLEAR; nAction = CLEAR; } } catch(Exception _e_) { Err.set(_e_,"cmdClear_Click"); } } private void cmdAdd_Click() { try { if( bOn ) { Calculate(); nPrevious = ADD; nAction = ADD; } } catch(Exception _e_) { Err.set(_e_,"cmdAdd_Click"); } } private void cmdMRecall_Click() { try { if( bOn ) { txtDisplay.setText( String.valueOf( nMemory ) ); nPrevious = MEMORY; } } catch(Exception _e_) { Err.set(_e_,"cmdMRecall_Click"); } } private void cmdMSubtract_Click() { try { if( bOn ) { nMemory = (int)Math.rint( nMemory - VB.val( txtDisplay.getText() ) ); nPrevious = MEMORY; } } catch(Exception _e_) { Err.set(_e_,"cmdMSubtract_Click"); } } private void cmdNumber_Click( int Index ) { try { KeyPressed( String.valueOf( Index ) ); } catch(Exception _e_) { Err.set(_e_,"cmdNumber_Click"); } } private void cmdTotal_Click() { try { if( bOn ) { Calculate(); nPrevious = TOTAL; nAction = TOTAL; } } catch(Exception _e_) { Err.set(_e_,"cmdTotal_Click"); } } private void cmdMAdd_Click() { try { if( bOn ) { nMemory = (int)Math.rint( nMemory + VB.val( txtDisplay.getText() ) ); nPrevious = MEMORY; } } catch(Exception _e_) { Err.set(_e_,"cmdMAdd_Click"); } } private void cmdPower_Click() { try { if( bOn ) { txtDisplay.setText( OFFMSG ); bOn = false; } else { txtDisplay.setText( " 0" ); bOn = true; } nMemory = 0; nTotal = 0; nValue = 0; } catch(Exception _e_) { Err.set(_e_,"cmdPower_Click"); } } // implementation of Listener interfaces public void actionPerformed( ActionEvent e ) { if( e.getSource() == cmdSubtract ) { cmdSubtract_Click(); } else if( e.getSource() == cmdClear ) { cmdClear_Click(); } else if( e.getSource() == cmdAdd ) { cmdAdd_Click(); } else if( e.getSource() == cmdMRecall ) { cmdMRecall_Click(); } else if( e.getSource() == cmdMSubtract ) { cmdMSubtract_Click(); } else if( e.getSource() == cmdNumber[0] ) { cmdNumber_Click( 0); } else if( e.getSource() == cmdNumber[1] ) { cmdNumber_Click( 1); } else if( e.getSource() == cmdNumber[2] ) { cmdNumber_Click( 2); } else if( e.getSource() == cmdNumber[3] ) { cmdNumber_Click( 3); } else if( e.getSource() == cmdNumber[4] ) { cmdNumber_Click( 4); } else if( e.getSource() == cmdNumber[5] ) { cmdNumber_Click( 5); } else if( e.getSource() == cmdNumber[6] ) { cmdNumber_Click( 6); } else if( e.getSource() == cmdNumber[7] ) { cmdNumber_Click( 7); } else if( e.getSource() == cmdNumber[8] ) { cmdNumber_Click( 8); } else if( e.getSource() == cmdNumber[9] ) { cmdNumber_Click( 9); } else if( e.getSource() == cmdTotal ) { cmdTotal_Click(); } else if( e.getSource() == cmdMAdd ) { cmdMAdd_Click(); } else if( e.getSource() == cmdPower ) { cmdPower_Click(); } } public void enableEvents() { cmdSubtract.addActionListener( this ); cmdClear.addActionListener( this ); cmdAdd.addActionListener( this ); cmdMRecall.addActionListener( this ); cmdMSubtract.addActionListener( this ); cmdNumber[0].addActionListener( this ); cmdNumber[1].addActionListener( this ); cmdNumber[2].addActionListener( this ); cmdNumber[3].addActionListener( this ); cmdNumber[4].addActionListener( this ); cmdNumber[5].addActionListener( this ); cmdNumber[6].addActionListener( this ); cmdNumber[7].addActionListener( this ); cmdNumber[8].addActionListener( this ); cmdNumber[9].addActionListener( this ); cmdTotal.addActionListener( this ); cmdMAdd.addActionListener( this ); cmdPower.addActionListener( this ); } }
|
Calculator |
|