监听器不是抽象的,不会覆盖抽象方法JAVA

时间:2016-10-29 19:36:27

标签: java jframe jpanel jbutton actionlistener

我无法弄清楚我在此代码中缺少的内容。它一直在说" ButtonListiner不是抽象的,并且不会在ActionListener中覆盖抽象方法actionPerformed(ActionEvent)。"但是我使用actionPerformed并且我已经在类和方法之上尝试了@Override并且它仍然无法正常工作。我的SubmitButtonListener类和我的ExitButtonListener类都是一样的。

package customerinserterproblem_alliebeckman;

import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.sql.SQLException;
import javafx.event.ActionEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class CustomerInserterProblem_AllieBeckman extends JFrame{

CustomerInfoPanel customerInfoPanel; // Panel for customer information
JPanel buttonPanel; // Panel for buttons

/**
 * Constructor
 */
public CustomerInserterProblem_AllieBeckman()
{
    // Set the window title
    setTitle("Add Customer");

    // Specify an action for the close button
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    // Create a CustomerInfoPanelObject
    customerInfoPanel = new CustomerInfoPanel();

    // Build the buttonPanel object
    buildButtonPanel();

    // Add the panels to the content pane
    add(customerInfoPanel, BorderLayout.CENTER);
    add(buttonPanel, BorderLayout.SOUTH);

    // Pack and display the window
    pack();
    setVisible(true);
}

/**
 * buildButtonPanel method
 */
private void buildButtonPanel()
{
    // Create a panel for the buttons
    buttonPanel = new JPanel();

    // Create a submit button and add an action listener
    JButton submitButton = new JButton("Submit");
    submitButton.addActionListener(new SubmitButtonListener());

    // Create an Exit button
    JButton exitButton = new JButton("Exit");
    exitButton.addActionListener(new ExitButtonListener());

    // Add the buttons to the panel.
    buttonPanel.add(submitButton);
    buttonPanel.add(exitButton);
}

我的问题从这里开始>

/**
 * Private inner class that handles submit button events
 */
private class SubmitButtonListener implements ActionListener
{

    public void actionPerformed(ActionEvent e){

        try
        {
            // Get the customer information from the text fields
            String custNum = customerInfoPanel.getCustNum();
            String name = customerInfoPanel.getName();
            String address = customerInfoPanel.getAddress();
            String city = customerInfoPanel.getCity();
            String state = customerInfoPanel.getState();
            String zip = customerInfoPanel.getZip();

            // Create a CustomerTableManager object
            CustomerTableManager ctManager = new CustomerTableManager();

            // Insert the record
            ctManager.insert(custNum, name, address, city, state, zip);

            // clear the text fields
            customerInfoPanel.clear();

            // Let the user know the record was added.
            JOptionPane.showMessageDialog(null, "Record Added");
        }
        catch (SQLException ex){
            ex.printStackTrace();
            System.exit(0);
        }
    }
}

在这里>

/**
 * Private inner class that handles Exit Button events
 */
private class ExitButtonListener implements ActionListener
{
    public void actionPerformed(ActionEvent e){
        // Exit the app
        System.exit(0);
    }
}

/**
 * main method
 */
public static void main(String[] args){
    new CustomerInserterProblem_AllieBeckman();
}

}

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您需要正确检查已正确导入java.awt.event.ActionEvent。 确保您没有错误地从ActionEvent导入错误类型的some other package

当您使用IDE(如Eclipse / IntellliJ / etc ..)并意外地自动导入其他不需要的类型时,通常会出现此问题。