I have a problem with my code below. There are three menu items (Customer, Merch
ID: 3657267 • Letter: I
Question
I have a problem with my code below. There are three menu items (Customer, Merchandize and Employee) in the Add Information Menu. Clicking on them (using addActionListener) should show various text fields/radio buttons/combo-boxes (which are required to fill in information) and a submit button. After submitting the required information and clicking the submit button it should print the information to a Pop-up window. I am stuck at the last point where it should call the actionPerformed method again and print the values to a Pop-up window. Can anyone help? ------ import java.awt.event.*; import java.awt.*; import javax.swing.*; import javax.swing.border.TitledBorder; public class Retail extends JFrame implements ActionListener { /** * */ private static final long serialVersionUID = 1L; JMenuBar menuBar = new JMenuBar(); JMenu addmenu = new JMenu("Add Information"); JMenu delmenu = new JMenu("Delete Information"); JMenu savemenu = new JMenu("Save Information"); JMenuItem emp = new JMenuItem("Employee"); JMenuItem merc = new JMenuItem("Merchandise"); JMenuItem cust = new JMenuItem("Customer"); Container contentPane = getContentPane(); JPanel p2 = new JPanel(); public Retail() { super(); contentPane.setLayout(new BorderLayout()); JPanel p1 = new JPanel(); p1.setBorder(new TitledBorder("Select Menu")); p1.setPreferredSize(new Dimension(500, 100)); contentPane.add(p1,BorderLayout.NORTH); p2.setBorder(new TitledBorder("Entry Screen")); p2.setPreferredSize(new Dimension(500,500)); contentPane.add(p2,BorderLayout.CENTER); p2.setLayout(new BorderLayout()); p1.add(menuBar); menuBar.add(addmenu); menuBar.add(delmenu); menuBar.add(savemenu); addmenu.add(emp); addmenu.addSeparator(); addmenu.add(merc); addmenu.addSeparator(); addmenu.add(cust); addmenu.addSeparator(); emp.addActionListener(this); merc.addActionListener(this); cust.addActionListener(this); } public void actionPerformed(ActionEvent e) { JButton submit1 = new JButton("Submit Employee Information"); JButton submit2 = new JButton("Submit Merchandise Information"); JButton submit3 = new JButton("Submit Customer Information"); if(e.getSource() == emp) { p2.removeAll(); p2.updateUI(); String[] states={"MA","AZ","CA"}; JLabel lb1 = new JLabel("First Name:"); JTextField txt1 = new JTextField(12); JLabel lb2 = new JLabel("Last Name:"); JTextField txt2 = new JTextField(12); JLabel lb3 = new JLabel("Address:"); JTextField txt3 = new JTextField(12); JLabel lb4 = new JLabel("City:"); JTextField txt4 = new JTextField(12); JLabel lb5 = new JLabel("State"); JComboBox cb1 = new JComboBox(states); JLabel lb6 = new JLabel("ZipCode"); JTextField txt5 = new JTextField(12); JPanel p3 = new JPanel(); p3.setLayout(new GridLayout(8,1)); JPanel p4 = new JPanel(); p4.setLayout(new GridLayout(1,2)); JLabel lb7= new JLabel("Gender:"); JRadioButton rb1 = new JRadioButton("Male"); JRadioButton rb2 = new JRadioButton("Female"); ButtonGroup bgroup = new ButtonGroup(); bgroup.add(rb1); bgroup.add(rb2); JLabel lb8 = new JLabel("Submit Information:"); JPanel p5 = new JPanel(); p5.setLayout(new GridLayout(8,1)); p3.add(lb1); p3.add(lb2); p3.add(lb3); p3.add(lb4); p3.add(lb5); p3.add(lb6); p3.add(lb7); p3.add(lb8); p5.add(txt1); p5.add(txt2); p5.add(txt3); p5.add(txt4); p4.add(rb1); p4.add(rb2); p5.add(cb1); p5.add(txt5); p5.add(p4); p5.add(submit1); p2.add(p3,BorderLayout.WEST); p2.add(p5,BorderLayout.EAST); submit1.addActionListener(this); } if(e.getSource() == merc) { p2.removeAll(); p2.updateUI(); String[] states={"MA","AZ","CA"}; JLabel lb1 = new JLabel("First Name:"); JTextField txt1 = new JTextField(12); JLabel lb2 = new JLabel("Last Name:"); JTextField txt2 = new JTextField(12); JLabel lb3 = new JLabel("Address:"); JTextField txt3 = new JTextField(12); JLabel lb4 = new JLabel("City:"); JTextField txt4 = new JTextField(12); JLabel lb5 = new JLabel("State"); JComboBox cb1 = new JComboBox(states); JLabel lb6 = new JLabel("ZipCode"); JTextField txt5 = new JTextField(12); JPanel p3 = new JPanel(); p3.setLayout(new GridLayout(8,1)); JPanel p4 = new JPanel(); p4.setLayout(new GridLayout(1,2)); JLabel lb7= new JLabel("Gender"); JRadioButton rb1 = new JRadioButton("Male"); JRadioButton rb2 = new JRadioButton("Female"); JLabel lb8 = new JLabel("Submit Information:"); JPanel p5 = new JPanel(); p5.setLayout(new GridLayout(8,1)); p3.add(lb1); p3.add(lb2); p3.add(lb3); p3.add(lb4); p3.add(lb5); p3.add(lb6); p3.add(lb7); p3.add(lb8); p5.add(txt1); p5.add(txt2); p5.add(txt3); p5.add(txt4); p4.add(rb1); p4.add(rb2); p5.add(cb1); p5.add(txt5); p5.add(p4); p5.add(submit2); p2.add(p3,BorderLayout.WEST); p2.add(p5,BorderLayout.EAST); submit2.addActionListener(this); } if(e.getSource() == cust) { p2.removeAll(); p2.updateUI(); String[] states={"MA","AZ","CA"}; JLabel lb1 = new JLabel("First Name:"); JTextField txt1 = new JTextField(12); JLabel lb2 = new JLabel("Last Name:"); JTextField txt2 = new JTextField(12); JLabel lb3 = new JLabel("Address:"); JTextField txt3 = new JTextField(12); JLabel lb4 = new JLabel("City:"); JTextField txt4 = new JTextField(12); JLabel lb5 = new JLabel("State"); JComboBox cb1 = new JComboBox(states); JLabel lb6 = new JLabel("ZipCode"); JTextField txt5 = new JTextField(12); JPanel p3 = new JPanel(); p3.setLayout(new GridLayout(8,1)); JPanel p4 = new JPanel(); p4.setLayout(new GridLayout(1,2)); JLabel lb7= new JLabel("Gender"); JRadioButton rb1 = new JRadioButton("Male"); JRadioButton rb2 = new JRadioButton("Female"); JLabel lb8 = new JLabel("Submit Information:"); JPanel p5 = new JPanel(); p5.setLayout(new GridLayout(8,1)); p3.add(lb1); p3.add(lb2); p3.add(lb3); p3.add(lb4); p3.add(lb5); p3.add(lb6); p3.add(lb7); p3.add(lb8); p5.add(txt1); p5.add(txt2); p5.add(txt3); p5.add(txt4); p4.add(rb1); p4.add(rb2); p5.add(cb1); p5.add(txt5); p5.add(p4); p5.add(submit3); p2.add(p3,BorderLayout.WEST); p2.add(p5,BorderLayout.EAST); submit3.addActionListener(this); } } public static void main(String[] args) { Retail frame = new Retail(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setTitle("Retail Information"); frame.pack(); frame.setResizable(true); frame.setVisible(true); } }Explanation / Answer
Create a inner class which implements ActionListener and attach it to your submit button...Follwing are the code changes.. import java.awt.event.*; import java.awt.*; import javax.swing.*; import javax.swing.border.TitledBorder; public class Retail extends JFrame implements ActionListener { /** * */ private static final long serialVersionUID = 1L; JMenuBar menuBar = new JMenuBar(); JMenu addmenu = new JMenu("Add Information"); JMenu delmenu = new JMenu("Delete Information"); JMenu savemenu = new JMenu("Save Information"); JMenuItem emp = new JMenuItem("Employee"); JMenuItem merc = new JMenuItem("Merchandise"); JMenuItem cust = new JMenuItem("Customer"); Container contentPane = getContentPane(); JPanel p2 = new JPanel(); public Retail() { super(); contentPane.setLayout(new BorderLayout()); JPanel p1 = new JPanel(); p1.setBorder(new TitledBorder("Select Menu")); p1.setPreferredSize(new Dimension(500, 100)); contentPane.add(p1,BorderLayout.NORTH); p2.setBorder(new TitledBorder("Entry Screen")); p2.setPreferredSize(new Dimension(500,500)); contentPane.add(p2,BorderLayout.CENTER); p2.setLayout(new BorderLayout()); p1.add(menuBar); menuBar.add(addmenu); menuBar.add(delmenu); menuBar.add(savemenu); addmenu.add(emp); addmenu.addSeparator(); addmenu.add(merc); addmenu.addSeparator(); addmenu.add(cust); addmenu.addSeparator(); emp.addActionListener(this); merc.addActionListener(this); cust.addActionListener(this); } public void actionPerformed(ActionEvent e) { JButton submit1 = new JButton("Submit Employee Information"); JButton submit2 = new JButton("Submit Merchandise Information"); JButton submit3 = new JButton("Submit Customer Information"); if(e.getSource() == emp) { p2.removeAll(); p2.updateUI(); String[] states={"MA","AZ","CA"}; JLabel lb1 = new JLabel("First Name:"); JTextField txt1 = new JTextField(12); JLabel lb2 = new JLabel("Last Name:"); JTextField txt2 = new JTextField(12); JLabel lb3 = new JLabel("Address:"); JTextField txt3 = new JTextField(12); JLabel lb4 = new JLabel("City:"); JTextField txt4 = new JTextField(12); JLabel lb5 = new JLabel("State"); JComboBox cb1 = new JComboBox(states); JLabel lb6 = new JLabel("ZipCode"); JTextField txt5 = new JTextField(12); JPanel p3 = new JPanel(); p3.setLayout(new GridLayout(8,1)); JPanel p4 = new JPanel(); p4.setLayout(new GridLayout(1,2)); JLabel lb7= new JLabel("Gender:"); JRadioButton rb1 = new JRadioButton("Male"); JRadioButton rb2 = new JRadioButton("Female"); ButtonGroup bgroup = new ButtonGroup(); bgroup.add(rb1); bgroup.add(rb2); JLabel lb8 = new JLabel("Submit Information:"); JPanel p5 = new JPanel(); p5.setLayout(new GridLayout(8,1)); p3.add(lb1); p3.add(lb2); p3.add(lb3); p3.add(lb4); p3.add(lb5); p3.add(lb6); p3.add(lb7); p3.add(lb8); p5.add(txt1); p5.add(txt2); p5.add(txt3); p5.add(txt4); p4.add(rb1); p4.add(rb2); p5.add(cb1); p5.add(txt5); p5.add(p4); p5.add(submit1); p2.add(p3,BorderLayout.WEST); p2.add(p5,BorderLayout.EAST); submit1.addActionListener(this);//instead of this line use next line to add actionlistener. submit1.addActionListener(new SubmitActionListener());//out action listener } if(e.getSource() == merc) { p2.removeAll(); p2.updateUI(); String[] states={"MA","AZ","CA"}; JLabel lb1 = new JLabel("First Name:"); JTextField txt1 = new JTextField(12); JLabel lb2 = new JLabel("Last Name:"); JTextField txt2 = new JTextField(12); JLabel lb3 = new JLabel("Address:"); JTextField txt3 = new JTextField(12); JLabel lb4 = new JLabel("City:"); JTextField txt4 = new JTextField(12); JLabel lb5 = new JLabel("State"); JComboBox cb1 = new JComboBox(states); JLabel lb6 = new JLabel("ZipCode"); JTextField txt5 = new JTextField(12); JPanel p3 = new JPanel(); p3.setLayout(new GridLayout(8,1)); JPanel p4 = new JPanel(); p4.setLayout(new GridLayout(1,2)); JLabel lb7= new JLabel("Gender"); JRadioButton rb1 = new JRadioButton("Male"); JRadioButton rb2 = new JRadioButton("Female"); JLabel lb8 = new JLabel("Submit Information:"); JPanel p5 = new JPanel(); p5.setLayout(new GridLayout(8,1)); p3.add(lb1); p3.add(lb2); p3.add(lb3); p3.add(lb4); p3.add(lb5); p3.add(lb6); p3.add(lb7); p3.add(lb8); p5.add(txt1); p5.add(txt2); p5.add(txt3); p5.add(txt4); p4.add(rb1); p4.add(rb2); p5.add(cb1); p5.add(txt5); p5.add(p4); p5.add(submit2); p2.add(p3,BorderLayout.WEST); p2.add(p5,BorderLayout.EAST); submit2.addActionListener(this);//instead of this line use next line to add actionlistener. submit2.addActionListener(new SubmitActionListener());//out action listener } if(e.getSource() == cust) { p2.removeAll(); p2.updateUI(); String[] states={"MA","AZ","CA"}; JLabel lb1 = new JLabel("First Name:"); JTextField txt1 = new JTextField(12); JLabel lb2 = new JLabel("Last Name:"); JTextField txt2 = new JTextField(12); JLabel lb3 = new JLabel("Address:"); JTextField txt3 = new JTextField(12); JLabel lb4 = new JLabel("City:"); JTextField txt4 = new JTextField(12); JLabel lb5 = new JLabel("State"); JComboBox cb1 = new JComboBox(states); JLabel lb6 = new JLabel("ZipCode"); JTextField txt5 = new JTextField(12); JPanel p3 = new JPanel(); p3.setLayout(new GridLayout(8,1)); JPanel p4 = new JPanel(); p4.setLayout(new GridLayout(1,2)); JLabel lb7= new JLabel("Gender"); JRadioButton rb1 = new JRadioButton("Male"); JRadioButton rb2 = new JRadioButton("Female"); JLabel lb8 = new JLabel("Submit Information:"); JPanel p5 = new JPanel(); p5.setLayout(new GridLayout(8,1)); p3.add(lb1); p3.add(lb2); p3.add(lb3); p3.add(lb4); p3.add(lb5); p3.add(lb6); p3.add(lb7); p3.add(lb8); p5.add(txt1); p5.add(txt2); p5.add(txt3); p5.add(txt4); p4.add(rb1); p4.add(rb2); p5.add(cb1); p5.add(txt5); p5.add(p4); p5.add(submit3); p2.add(p3,BorderLayout.WEST); p2.add(p5,BorderLayout.EAST); submit3.addActionListener(this);//instead of this line use next line to add actionlistener.Commment this line. submit3.addActionListener(new SubmitActionListener());//out action listener } if(e.getSource()==submit1) { JOptionPane.showMessageDialog(rootPane," button is clicked"); } } /** * ActionListner Class for submit button. */ private class SubmitActionListener implements ActionListener{ public SubmitActionListener()//pass values from textbox and other components from constructors or setter methods. { } @Override public void actionPerformed(ActionEvent e) { //do the thing here.Like opening dialog in your case } }
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.