why is my program printing the same thing twice

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • yaoc1987
    New Member
    • Mar 2010
    • 8

    #1

    why is my program printing the same thing twice

    i have a problem with the jcombobox i made
    im guessing the problems are at getSalutation() and getSuffix() but im not completely sure

    i want it to print to console once when the user clicks on the option but for some reason it is printing out twice

    also how do i use requestFocus() with jcombobox?

    please help me out!!!
    thank you!!!

    Code:
    // 221 Fall 2010 Homework 1
    // A simple Graphical User Interface (GUI).
    // Team 4: Yao Jiang, Guang Jian Li, Davian Gordon
    
    package hw1;
    
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    
    public class HW1Fall2010StudentSolution extends JFrame {
    	// Including this line avoids an annoying warning message.
    	private static final long serialVersionUID = 1L;
    
    	private String firstNameAsEntered = new String();
    	private JTextField firstNameEntry = null;
    
    	private String middleInitialAsEntered = new String();
    	private JTextField middleInitialEntry = null;
    
    	private String lastNameAsEntered = new String();
    	private JTextField lastNameEntry = null;
    
    	private String partNumberAsEntered = new String();
    	private JTextField partNumberEntry = null;
    
    	private String salutationAsEntered = new String();
    
    	private String suffixAsEntered = new String();
    
    	private String quantityAsEntered = new String();
    	private JTextField quantityEntry = null;
    
    	private String priceAsEntered = new String();
    	private JTextField priceEntry = null;
    
    	private javax.swing.JPanel jContentPane = null;
    
    	public static void main(String[] args) {
    		HW1Fall2010StudentSolution frame = new HW1Fall2010StudentSolution();
    		frame.setVisible(true);
    	} // end main
    
    	// constructor
    	public HW1Fall2010StudentSolution() {
    		// Invoke constructor of superclass.
    		super();
    		initialize();
    	} // end HW1StarterKit constructor
    
    	// "this" is always a reference to the object currently executing.
    	// frame, in this case.
    	private void initialize() {
    		this.setSize(350, 250);
    		this.setContentPane(getJContentPane());
    		this.setTitle("Customer Data Entry");
    	}
    
    	private JPanel getJContentPane() {
    		jContentPane = new JPanel();
    		// Flow layout is one of a number of layout managers.
    		// We'll study layout in more detail later.
    		// Flow layout: left to right until line full, then move to next line.
    		jContentPane.setLayout(new java.awt.FlowLayout());
    		// We now have a "pane" to hold our components.
    		// We add them in the order we want them to appear: left to right,
    		// and top to bottom. (Experiment until you understand.)
    		jContentPane.add(makeLabel(" First Name *", 100, 20));
    		jContentPane.add(getFirstNameEntry(), null);
    
    		jContentPane.add(makeLabel(" Middle Initial", 100, 20));
    		jContentPane.add(getMiddleInitialEntry(), null);
    
    		jContentPane.add(makeLabel(" Last Name *", 100, 20));
    		jContentPane.add(getLastNameEntry(), null);
    
    		jContentPane.add(makeLabel(" Part Number *", 100, 20));
    		jContentPane.add(getPartNumberEntry(), null);
    
    		jContentPane.add(makeLabel(" Salutation *", 100, 20));
    		jContentPane.add(getSalutation(), null);
    
    		jContentPane.add(makeLabel(" Suffix *", 100, 20));
    		jContentPane.add(getSuffix(), null);
    
    		jContentPane.add(makeLabel(" Quantity *", 100, 20));
    		jContentPane.add(getQuantity(), null);
    
    		jContentPane.add(makeLabel(" Unit Price *", 100, 20));
    		jContentPane.add(getPrice(), null);
    
    		return jContentPane;
    	}
    
    	// A small "factory" to build labels
    	private JLabel makeLabel(String labelName, int width, int height) {
    		JLabel label = new JLabel();
    		label.setText(labelName);
    		label.setPreferredSize(new Dimension(width, height));
    		return label;
    	}
    
    	private JTextField getFirstNameEntry() {
    		firstNameEntry = new JTextField();
    		firstNameEntry.setPreferredSize(new Dimension(200, 20));
    		firstNameEntry.addActionListener(
    		// The "new" here, as always, means that a class is being
    		// instantiated. But it has no name: it's _anonymous_
    				new ActionListener() {
    					public void actionPerformed(ActionEvent e) {
    						firstNameAsEntered = firstNameEntry.getText().trim();
    						firstNameEntry.setText(firstNameAsEntered);
    						System.out.println(firstNameAsEntered);
    						if (firstNameAsEntered.length() == 0)
    							System.out.println("First name is required");
    						middleInitialEntry.requestFocus();
    					}
    				});
    
    		return firstNameEntry;
    	} // end private JTextField getFirstNameEntry()
    
    	private JTextField getMiddleInitialEntry() {
    		middleInitialEntry = new JTextField();
    		middleInitialEntry.setPreferredSize(new Dimension(200, 20));
    		middleInitialEntry.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				middleInitialAsEntered = middleInitialEntry.getText().trim();
    				middleInitialEntry.setText(middleInitialAsEntered);
    				if (middleInitialAsEntered.length() != 0)
    					middleInitialAsEntered = middleInitialAsEntered.substring(
    							0, 1) + '.';
    				middleInitialAsEntered = middleInitialAsEntered.toUpperCase();
    				middleInitialEntry.setText(middleInitialAsEntered);
    				System.out.println(middleInitialAsEntered);
    				lastNameEntry.requestFocus();
    			}
    		});
    		return middleInitialEntry;
    	} // end private JTextField getMiddleInitialEntry()
    
    	private JTextField getLastNameEntry() {
    		lastNameEntry = new JTextField();
    		lastNameEntry.setPreferredSize(new Dimension(200, 20));
    		lastNameEntry.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				lastNameAsEntered = lastNameEntry.getText().trim();
    				// This deletes leading and trailing blanks in entry field, too
    				lastNameEntry.setText(lastNameAsEntered);
    				System.out.println(lastNameAsEntered);
    				if (lastNameAsEntered.length() == 0)
    					System.out.println("Last name is required");
    				partNumberEntry.requestFocus();
    			}
    		});
    		return lastNameEntry;
    	} // end private JTextField getLastNameEntry()
    
    	private JTextField getPartNumberEntry() {
    		partNumberEntry = new JTextField();
    		partNumberEntry.setPreferredSize(new Dimension(200, 20));
    		partNumberEntry.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				partNumberAsEntered = partNumberEntry.getText().trim();
    				// This deletes leading and trailing blanks in entry field, too
    				partNumberEntry.setText(partNumberAsEntered);
    				System.out.println(partNumberAsEntered);
    				if (partNumberAsEntered.length() == 0)
    					System.out.println("Part number is required");
    				quantityEntry.requestFocus();
    			}
    		});
    		return partNumberEntry;
    	}
    
    	public JComboBox getSalutation() {
    		String temp[] = { "Choose one", "Mr.", "Mrs.", "Ms.", "Dr.", "Prof." };
    		final JComboBox salutation = new JComboBox(temp);
    		salutation.setPreferredSize(new Dimension(200, 20));
    		salutation.addItemListener(new ItemListener() {
    			public void itemStateChanged(ItemEvent ie) {
    				salutationAsEntered = (String) salutation.getSelectedItem();
    				System.out.println(salutationAsEntered);
    			}
    		});
    		return salutation;
    	}
    
    	private JComboBox getSuffix() {
    		String temp[] = { "Choose one.", "Jr.", "Sr.", "I", "II", "III", "IV",
    				"V" };
    		final JComboBox suffix = new JComboBox(temp);
    		suffix.setPreferredSize(new Dimension(200, 20));
    		suffix.addItemListener(new ItemListener() {
    			public void itemStateChanged(ItemEvent ie) {
    				suffixAsEntered = (String) suffix.getSelectedItem();
    				System.out.println(suffixAsEntered);
    			}
    		});
    
    		return suffix;
    	}
    
    	private JTextField getQuantity() {
    		quantityEntry = new JTextField();
    		quantityEntry.setPreferredSize(new Dimension(200, 20));
    		quantityEntry.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				quantityAsEntered = quantityEntry.getText().trim();
    				// This deletes leading and trailing blanks in entry field, too
    				quantityEntry.setText(quantityAsEntered);
    				System.out.println(quantityAsEntered);
    				if (quantityAsEntered.length() == 0)
    					System.out.println("Quantity is required");
    				priceEntry.requestFocus();
    			}
    		});
    		return quantityEntry;
    	} // end private JTextField quantityEntry()
    
    	private JTextField getPrice() {
    		priceEntry = new JTextField();
    		priceEntry.setPreferredSize(new Dimension(200, 20));
    		priceEntry.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				priceAsEntered = priceEntry.getText().trim();
    				// This deletes leading and trailing blanks in entry field, too
    				priceEntry.setText(priceAsEntered);
    				System.out.println(priceAsEntered);
    				if (priceAsEntered.length() == 0)
    					System.out.println("Price is required");
    			}
    		});
    		return priceEntry;
    	}// end private JTextField priceEntry()
    
    } // end class HW1StarterKit2010
Working...