java - JComboBox 只能使用一次并且不会更新

标签 java swing jcombobox

下面是我的代码,我已经尝试过每件事。我尝试添加 getSelectedItem() 等。一切都无济于事,ComboBox 只能使用一次,而且它甚至不会更新。各位帮帮我吧!

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);
        }
    }
}

提前致谢! (:

附注如果您有关于如何清理代码的提示,请分享!谢谢!顺便说一句,这是餐 table 预订系统的一些简单编码。虽然不完整。很快就会实现 MySQL 服务器和后端。

最佳答案

问题出现在这里

AmtPpl.addActionListener(this);

基本上,当它执行时,它会构建另一个对话框并显示。所以是的,该值正在更改,但因为您正在显示另一个对话框,所以它会覆盖它。

关于java - JComboBox 只能使用一次并且不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11770271/

相关文章:

java - Spring 数据 JPA 多对多检索

java - 如何在 Apache vfs 中获取文件的日期

Java Swing ProgressBar 在计算时更新

java - 如何设置系统默认字体为JComboBox<String>的选中项?

java - 从已绑定(bind)到数据库表的组合框中检索文本

java - 比较器和比较器之间的区别?

java - 记事本程序中的复制按钮

java - super.paintComponent(g) 是做什么的?

java - 如何在 JComboBox 中填充数据?

通过执行器重用java线程