// ArrayOneDimension3.java
// Using an array to computer sales commissions
// APPLET CODE="ArrayOneDimension3" HEIGHT=400 WIDTH=100
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ArrayOneDimension3 extends JApplet implements ActionListener {
Container c;
JLabel lJan, lFeb, lMar, lApr, lMay, lJun, lComm;
JTextField sJan, sFeb, sMar, sApr, sMay, sJun, outputComm;
JButton compute;
int sales[ ];
double rate1, rate2;
int comm;
public void init( ) {
sales = new int[ 6 ];
rate1 = .1;
rate2 = .2;
comm = 0;
// GUI components
// get content pane and set layout
c = getContentPane( );
c.setLayout( new FlowLayout( ) );
// labels
lJan = new JLabel( "Jan" );
lFeb = new JLabel( "Feb" );
lMar = new JLabel( "Mar" );
lApr = new JLabel( "Apr" );
lMay = new JLabel( "May" );
lJun = new JLabel( "Jun" );
lComm = new JLabel( "Commission" );
// text fields
sJan = new JTextField( 6 );
sFeb = new JTextField( 6 );
sMar = new JTextField( 6 );
sApr = new JTextField( 6 );
sMay = new JTextField( 6 );
sJun = new JTextField( 6 );
// button
outputComm = new JTextField( 8 );
outputComm.setEditable( false );
compute = new JButton( "COMPUTE" );
// make compute button the only component that can trigger an event
compute.addActionListener( this );
c.add( lJan );
c.add( sJan );
c.add( lFeb );
c.add( sFeb );
c.add( lMar );
c.add( sMar );
c.add( lApr );
c.add( sApr );
c.add( lMay );
c.add( sMay );
c.add( lJun );
c.add( sJun );
c.add( lComm );
c.add( outputComm );
c.add( compute );
}
public void actionPerformed( ActionEvent e ) {
// reset comm to 0
comm = 0;
// convert text entered in text fields to integers and fill sales array
sales[ 0 ] = Integer.parseInt( sJan.getText( ) );
sales[ 1 ] = Integer.parseInt( sFeb.getText( ) );
sales[ 2 ] = Integer.parseInt( sMar.getText( ) );
sales[ 3 ] = Integer.parseInt( sApr.getText( ) );
sales[ 4 ] = Integer.parseInt( sMay.getText( ) );
sales[ 5 ] = Integer.parseInt( sJun.getText( ) );
// compute commission
// 10% of first 100 in sales and 20% of any sales over 100
for ( int i = 0; i < sales.length; i++ )
comm += ( rate1 * Math.min( sales[ i ], 100 ) + rate2 * Math.max( 0, sales[ i ] - 100 ) );
outputComm.setText( String.valueOf( comm ) );
}
}