CS335 Fall, 2008 Homework 4 (20 points) Due: October 2, 2008 (Thursday) ************************************************************************ 1. (10 pts) Write a java program to design an interface as follows. User inputs a number in the first text field and a second number in the second text field and then click the "=" button to get the sum of the input two numbers in the third text field.
2. (10 pts) Modify the following java code to make TextFieldHandler an anonymous inner class in the TextFieldTest class (see the modified "J_Button" class on page 19 of the notes "Java VII: GUI & Swing I"). ///////////////////////////////////////////////////// // File: TextFieldTest.java ///////////////////////////////////////////////////// import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.JOptionPane; // inner class for event handling class TextFieldHandler implements ActionListener { public void actionPerformed( ActionEvent e ) { String s = ""; TextFieldTest tt = new TextFieldTest(); if ( e.getSource() == tt.text1 ) s = "text1: " + e.getActionCommand(); else if ( e.getSource() == tt.text2 ) s = "text2: " + e.getActionCommand(); else if ( e.getSource() == tt.text3 ) s = "text3: " + e.getActionCommand(); else if ( e.getSource() == tt.password ) { JPasswordField pwd = (JPasswordField) e.getSource(); s = "password: " + new String( pwd.getPassword() ); } JOptionPane.showMessageDialog( null, s ); } } public class TextFieldTest extends JFrame { // private JTextField text1, text2, text3; // private JPasswordField password; JTextField text1, text2, text3; JPasswordField password; public TextFieldTest( ) { super( "Testing JTextField and JPasswordField" ); Container c = getContentPane( ); c.setLayout( new FlowLayout( ) ); // construct textfield with default sizing text1 = new JTextField( 10 ); c.add( text1 ); // construct textfield with default text text2 = new JTextField( "Enter text here" ); c.add( text2 ); // construct textfield with default text and 20 // visible elements and no event handler text3 = new JTextField( "Uneditable text field", 20 ); text3.setEditable( false ); c.add( text3 ); // construct textfield with default text password = new JPasswordField( "Hidden text" ); c.add( password ); TextFieldHandler handler = new TextFieldHandler(); text1.addActionListener( handler ); text2.addActionListener( handler ); text3.addActionListener( handler ); password.addActionListener( handler ); setSize( 325, 100 ); show( ); } public static void main( String args[] ) { TextFieldTest app = new TextFieldTest(); app.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent e ) { System.exit( 0 ); } } ); } }