// ArrayOfGUIComponents.java
// Using an array to computer sales commission
// Cooler version of ArrayOneDimension3
// Uses arrays of JLabels and JTextfields
// APPLET CODE="ArrayOfGUIComponents" HEIGHT=400 WIDTH=100
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ArrayOfGUIComponents extends JApplet implements ActionListener {
// GUI components
Container c;
JLabel months[ ];
JLabel commLabel;
JTextField tfSales[ ];
JTextField outputComm;
JButton compute;
int sales[ ]; // array of monthly sales data
double rate1, rate2; // rate1 is applied to first 100 and rate2 to any excess
int comm;
public void init( ) {
sales = new int[ 6 ];
rate1 = .1;
rate2 = .2;
// GUI components
c = getContentPane( );
c.setLayout( new FlowLayout( ) );
months = new JLabel[ 6 ]; // creates the array of labels
commLabel = new JLabel( "Commission" );
tfSales = new JTextField[ 6 ]; // creates the array of textfields
outputComm = new JTextField( 8 );
outputComm.setEditable( false );
compute = new JButton( "COMPUTE" );
compute.addActionListener( this );
for ( int i = 0; i < months.length; i++ ) {
months[ i ] = new JLabel( "Month " + ( 1 + i ) ); // creates each individual label
c.add( months[ i ] );
tfSales[ i ] = new JTextField( 5 ); // creates each individual textfield
c.add( tfSales[ i ] );
}
c.add( commLabel );
c.add( outputComm );
c.add( compute );
}
public void actionPerformed( ActionEvent e ) {
// initialize comm
comm = 0;
// get the sales data and fill sales array
for ( int i = 0; i < months.length; i++ )
sales[ i ] = Integer.parseInt( tfSales[ i ].getText( ) );
// compute the commission
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 ) );
}
}