Java JComboBox addActionListener不工作

Java JComboBox addActionListener不工作,java,swing,actionlistener,jcombobox,java-7,Java,Swing,Actionlistener,Jcombobox,Java 7,所以我有一个项目 源代码是 当您运行项目并转到处理时,那里有一个jcombobox,它应该有一个addActionListener p_customer_list = new JComboBox<>(customers_name); pp_customer_list.setPreferredSize(new Dimension(360, 35)); panel_processing_header.add(pp_customer_list); //pp_cus

所以我有一个项目

源代码是

当您运行项目并转到处理时,那里有一个jcombobox,它应该有一个addActionListener

p_customer_list = new JComboBox<>(customers_name);
    pp_customer_list.setPreferredSize(new Dimension(360, 35)); 
    panel_processing_header.add(pp_customer_list);
    //pp_customer_list.addActionListener(this);
    pp_customer_list.addActionListener (new ActionListener () {
        public void actionPerformed(ActionEvent e) {
            JComboBox tmpBox = (JComboBox) e.getSource();
            int selected = tmpBox.getSelectedIndex();
            pp_refresh_data(selected);
        }
    }); 

这就是我到目前为止所做的,它假设在组合框的值更改时找到所选索引,并将其传递给pp_refresh_data,但由于某些原因,它没有运行。我尝试放置JOptionPane以查看代码何时执行,并且仅在程序运行时执行一次。

仅从部分代码片段很难区分,但是你有两个组合吗,一个是p_客户列表,另一个是p_客户列表

这可能是你的问题。您可能将侦听器添加到错误的组合,或者您可能将错误的组合添加到面板,或者您不需要两个,或者可能


同样,仅仅从一个片段就很难分辨出来。

当你知道ActionEvent的来源是pp\U客户列表时,为什么你会得到它?只需将JComboBox设置为final,并在侦听器中使用它。此外,请不要在名称中使用下划线,除非其所有字母都大写。否则,只需使用类似于PCCustomerList的内容。@AliAlamiri从事件中获取源代码,并对classCastException进行适当的保护是一个好主意-解耦代码。无关: