【问题标题】:Listener is not abstract and does not override abstract method JAVAListener 不是抽象的,不会覆盖抽象方法 JAVA
【发布时间】:2016-10-29 19:36:27
【问题描述】:

我无法弄清楚这段代码中缺少什么。它一直说“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();
}

}

提前感谢您的帮助。

【问题讨论】:

  • 你想达到什么目的?

标签: java jframe jpanel jbutton actionlistener


【解决方案1】:

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

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

【讨论】:

  • 谢谢,就是这样。不知道为什么它会自动放置其他侦听器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-20
  • 2014-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多