为什么在尝试向按钮添加动作侦听器时出现错误?

时间:2010-10-12 17:36:00

标签: java compiler-errors

对不起上一个程序有很多错误(我忘了保存文件,因此发布了一个不完整的代码)所以我发布了这个

以下是代码:

import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class GUIPreparedStatement {
    private JFrame frame1;
    private JPanel panel1;
    private JTextField tf1;
    private JTextField tf2;
    private JButton b1;
    public JLabel lb1;
    PreparedStatement ps;

    GUIPreparedStatement() {
        frame1 = new JFrame();
        panel1 = new JPanel();
        tf1 = new JTextField(10);
        tf2 = new JTextField(10);
        b1 = new JButton("Enter Record");
        lb1 = new JLabel("Press the Button");

        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection con = DriverManager.getConnection("jdbc:odbc:Employees");
            ps = con.prepareStatement("INSERT INTO Employees VALUES(?,?)");
        } catch(SQLException e) {
            lb1.setText("SQL Statement not executed");
        } catch(Exception e) {
            lb1.setText("General Error");
        }

        b1.addActionListener(this);

        panel1.add(tf1);
        panel1.add(tf2);
        panel1.add(b1);
        panel1.add(lb1);

        Container contentPane = frame1.getContentPane();
        contentPane.add(panel1);

        frame1.setDefaultCloseOperation(frame1.EXIT_ON_CLOSE);
        frame1.setVisible(true);
        frame1.pack();
    }

    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == b1) {
            try {
                ps.setString(1,tf1.getText());
                ps.setString(2,tf2.getText());
                ps.executeUpdate();
            } catch (SQLException f) {
                lb1.setText("SQL Record not Entered");
            }       
        }
    }

    public static void main (String args[]) {
        new GUIPreparedStatement();
    }
}

代码错误:

http://screensnapr.com/u/nx5t1r.png

2 个答案:

答案 0 :(得分:2)

要回答经过大量编辑的问题,您的GUIPreparedStatment需要实现ActionListener接口。

public class GUIPreparedStatement implements ActionListener

虽然您已经实现了actionPerformed(ActionEvent e),但您尚未向编译器声明您已完成此操作以满足接口协定。

答案 1 :(得分:0)

您的一些错误引用了您未发布的代码行。

编辑:更正了无效的假设