Reputation: 3
below is my code, I've tried every single thing. I've tried adding getSelectedItem(), etc. All to no avail, the ComboBox can only be used once and and it won't even update. Help me out guys!
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.*;
import javax.swing.*;
public class MainClass extends JFrame implements ActionListener {
String[] AmtOfPpl = {"1", "2", "3", "4"};
private JLabel jlabel = new JLabel("Please select a table:");
private JButton a01 = new JButton("A01");
private JButton a02 = new JButton("A02");
private JButton a03 = new JButton("A03");
private JButton a04 = new JButton("A04");
private JButton a05 = new JButton("A05");
private JButton a06 = new JButton("A06");
private JButton a07 = new JButton("A07");
private JButton a08 = new JButton("A08");
private JButton a09 = new JButton("A09");
private JButton a10 = new JButton("A10");
private JButton c01 = new JButton("C01");
private JButton c02 = new JButton("C02");
private JButton c03 = new JButton("C03");
private JButton c04 = new JButton("C04");
private JButton c05 = new JButton("C05");
private JButton c06 = new JButton("C06");
private JButton c07 = new JButton("C07");
private JButton c08 = new JButton("C08");
private JButton c09 = new JButton("C09");
private JButton c10 = new JButton("C10");
private JButton c11 = new JButton("C11");
private JButton c12 = new JButton("C12");
private JLabel FstName = new JLabel("*First Name: ");
private JLabel LstName = new JLabel("*Last Name: ");
private JLabel Addrss = new JLabel("Address: ");
private JLabel PstlCode = new JLabel("Postal Code: ");
private JLabel HndPne = new JLabel("*Handphone No.: ");
private JLabel AoP = new JLabel("*Amount of People: ");
private JLabel Mndtry = new JLabel("Fields marked with * are mandatory.");
private JTextField FName = new JTextField();
private JTextField LName = new JTextField();
private JTextField Addr = new JTextField();
private JTextField PCode = new JTextField();
private JTextField HP = new JTextField();
private JComboBox<?> AmtPpl = new JComboBox<Object>(AmtOfPpl);
public MainClass() {
JPanel p1 = new JPanel();
p1.setLayout(new GridLayout(2,5,10,25));
p1.add(a01);
p1.add(a02);
p1.add(a03);
p1.add(a04);
p1.add(a05);
p1.add(a10);
p1.add(a09);
p1.add(a08);
p1.add(a07);
p1.add(a06);
JPanel p2 = new JPanel();
p2.setLayout(new GridLayout(6,2,2,2));
p2.add(c01);
p2.add(c02);
p2.add(c03);
p2.add(c04);
p2.add(c05);
p2.add(c06);
p2.add(c07);
p2.add(c08);
p2.add(c09);
p2.add(c10);
p2.add(c11);
p2.add(c12);
a01.addActionListener(this);
a02.addActionListener(this);
a03.addActionListener(this);
a04.addActionListener(this);
a05.addActionListener(this);
a06.addActionListener(this);
a07.addActionListener(this);
a08.addActionListener(this);
a09.addActionListener(this);
a10.addActionListener(this);
c01.addActionListener(this);
c02.addActionListener(this);
c03.addActionListener(this);
c04.addActionListener(this);
c05.addActionListener(this);
c06.addActionListener(this);
c07.addActionListener(this);
c08.addActionListener(this);
c09.addActionListener(this);
c10.addActionListener(this);
c11.addActionListener(this);
c12.addActionListener(this);
AmtPpl.setSelectedIndex(3);
AmtPpl.addActionListener(this);
setLayout(new BorderLayout(20,10));
add(jlabel, BorderLayout.NORTH);
add(p1, BorderLayout.CENTER);
add(p2, BorderLayout.EAST);
}
public static void main(String[] args) {
MainClass frame = new MainClass();
frame.setTitle("Table Reservation System");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(550, 300);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent e) {
JPanel InputPanel = new JPanel();
InputPanel.setLayout(new GridLayout(7,2));
InputPanel.add(FstName);
InputPanel.add(FName);
InputPanel.add(LstName);
InputPanel.add(LName);
InputPanel.add(Addrss);
InputPanel.add(Addr);
InputPanel.add(PstlCode);
InputPanel.add(PCode);
InputPanel.add(HndPne);
InputPanel.add(HP);
InputPanel.add(AoP);
InputPanel.add(AmtPpl);
InputPanel.add(Mndtry);
if(e.getSource()==a01) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==a02) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==a03) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==a04) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==a05) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==a06) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==a07) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==a08) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==a09) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==a10) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==c01) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==c02) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==c03) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==c04) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==c05) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==c06) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==c07) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==c08) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==c09) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==c10) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==c11) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
else if(e.getSource()==c12) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
}
}
Thanks in advance! (:
P.S. If you have tips on how to clean the code up, please do share! Thanks! Btw, this is some simple coding for a Table Reservation System. Incomplete though. Will soon implement MySQL Server and a backend.
Upvotes: 0
Views: 166
Reputation: 39485
Your actionPerformed
is filled with a bunch of repetition. At least please try to remove clutter by encapsulating a large amount of code by removing from your actionPerformed
:
if(e.getSource()==a01) {
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
&tc,., and making a method like the following:
private void showOptionPane() {
JPanel InputPanel = new JPanel();
InputPanel.setLayout(new GridLayout(7,2));
InputPanel.add(FstName);
InputPanel.add(FName);
InputPanel.add(LstName);
InputPanel.add(LName);
InputPanel.add(Addrss);
InputPanel.add(Addr);
InputPanel.add(PstlCode);
InputPanel.add(PCode);
InputPanel.add(HndPne);
InputPanel.add(HP);
InputPanel.add(AoP);
InputPanel.add(AmtPpl);
InputPanel.add(Mndtry);
JOptionPane.showConfirmDialog(null, InputPanel, "Please enter the required information", JOptionPane.OK_CANCEL_OPTION);
}
Upvotes: 2
Reputation: 347204
The problem occurs here
AmtPpl.addActionListener(this);
Basically, when it executes, it builds ANOTHER dialog and shows. So yes the value is changing, but because you're displaying ANOTHER dialog, it's overriding it.
Upvotes: 2