GUIRationalTester
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUIRationalTester extends JApplet implements ActionListener {
private Rational r1,r2,result;
private JLabel numeratorLabel1,
numeratorLabel2,
denominatorLabel1,
denominatorLabel2;
private JTextField numeratorField1,
numeratorField2,
denominatorField1,
denominatorField2,
displayField;
private JButton addButton;
// create Time3 object and set up GUI
public void init()
{
// get applet's content pane and change its layout to FlowLayout
Container container = getContentPane();
container.setLayout( new FlowLayout() );
// set up Labels and Fields
numeratorLabel1 = new JLabel( "r1 numerator" );
numeratorField1 = new JTextField( 10 );
denominatorLabel1 = new JLabel( "r1 denominator" );
denominatorField1 = new JTextField( 10 );
container.add( numeratorLabel1 );
container.add( numeratorField1 );
container.add( denominatorLabel1 );
container.add( denominatorField1 );
numeratorLabel2 = new JLabel( "r2 numerator" );
numeratorField2 = new JTextField( 10 );
denominatorLabel2 = new JLabel( "r2 denominator" );
denominatorField2 = new JTextField( 10 );
container.add( numeratorLabel2 );
container.add( numeratorField2 );
container.add( denominatorLabel2 );
container.add( denominatorField2 );
// set up displayField
displayField = new JTextField( 30 );
displayField.setEditable( false );
container.add( displayField );
// set up addButton
addButton = new JButton( "Add" );
container.add( addButton);
// register event handlers; this applet is the ActionListener,
// which contains method actionPerformed that will be called to
// handle action events generated by addButton
addButton.addActionListener( this );
} // end method init
// event handler for button and textfield events
public void actionPerformed( ActionEvent event )
{
int a = Integer.parseInt(numeratorField1.getText());
int b = Integer.parseInt(denominatorField1.getText());
int c = Integer.parseInt(numeratorField2.getText());
int d = Integer.parseInt(denominatorField2.getText());
r1 = new Rational(a,b);
r1.reduce();
r2 = new Rational(c,d);
r2.reduce();
result = r1.add(r2);
result.reduce();
displayField.setText(r1.toString() + " + " + r2.toString() + " = " + result.toString());
} // end method actionPerformed
} // end class GUIRationalTester