|
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 |
|