按钮事件出了问题,是怎么回事,各位前辈快来帮帮我啊

a122459289 2012-12-17 10:20:48
package study;
import javax.swing.*;

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

public class AddressList extends WindowAdapter {
JFrame mainJframe;
Container con;
JPanel[] pane;
JTextField fieldText[];
JLabel lbl[];
JButton firstBtn,preBtn,nextBtn,lastBtn,addBtn,editBtn,delBtn,cancelBtn,saveBtn;
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
protected int recordState=onlyRead,curRow=0,recordCnt=0;
public static final int onlyRead=0,adding=4,amending=2;
public static final String lblmsg[]={"学号","姓名","性别","家庭住址","寝室","电话"};
private static final int fieldCnt=6;


public AddressList() {
mainJframe=new JFrame("学生信息管理");
con=mainJframe.getContentPane();
con.setLayout(new BoxLayout(con,BoxLayout.Y_AXIS));
pane=new JPanel[4];
for(int i=0;i<4;i++){
pane[i]=new JPanel();
pane[i].setLayout(new FlowLayout());
}
fieldText=new JTextField[fieldCnt];
lbl=new JLabel[fieldCnt];
for(int i=0;i<fieldCnt;i++){
fieldText[i]=new JTextField();
fieldText[i].setColumns(10);
fieldText[i].setEditable(false);
lbl[i]=new JLabel();
lbl[i].setText(lblmsg[i]);
pane[i/2].add(lbl[i]);
pane[i/2].add(fieldText[i]);
}
fieldText[2].setColumns(6);
fieldText[3].setColumns(12);
firstBtn=new JButton("第一条");
preBtn=new JButton("前一条");
nextBtn=new JButton("后一条");
lastBtn=new JButton("最后一条");
addBtn=new JButton("增加记录");
editBtn=new JButton("编辑记录");
delBtn=new JButton("删除记录");
cancelBtn=new JButton("取消改变");
saveBtn=new JButton("保存记录");
firstBtn.addActionListener(this);
preBtn.addActionListener(this);
nextBtn.addActionListener( this);
lastBtn.addActionListener(this);
addBtn.addActionListener( this);
editBtn.addActionListener(this);
delBtn.addActionListener(this);
cancelBtn.addActionListener( this);
saveBtn.addActionListener(this);
pane[3].add(firstBtn);
pane[3].add(preBtn);
pane[3].add(lastBtn);
pane[3].add(addBtn);
pane[3].add(editBtn);
pane[3].add(delBtn);
pane[3].add(cancelBtn);
pane[3].add(saveBtn);
for(int i=0;i<4;i++){
con.add(pane[i]);
}
mainJframe.setSize(450,300);
mainJframe.setVisible(true);
mainJframe.addWindowListener(this);
connection();
if(recordCnt>0) showDate();
setFace();
}


protected void setFace(){
firstBtn.setEnabled(false);
preBtn.setEnabled(false);
nextBtn.setEnabled(true);
lastBtn.setEnabled(true);
addBtn.setEnabled(true);
editBtn.setEnabled(true);
delBtn.setEnabled(true);
cancelBtn.setEnabled(false);
saveBtn.setEnabled(false);
}
public static void main(String[] args){
new AddressList();
}


public void connection(){
try{
String url="jdbc:mysql://127.0.0.1:3306/fist";
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(url,"root","46812112");
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery("select count(*) from students");
if(rs.next())
recordCnt=rs.getInt(1);
rs=stmt.executeQuery("select code,name,sex,address,room,tel from students");
rs.next();
curRow=1;
}catch(SQLException e){
JOptionPane.showMessageDialog(mainJframe, "数据库无法连接或没有记录");
}catch(ClassNotFoundException e){
JOptionPane.showConfirmDialog(mainJframe, "无法加载数据库");
}
}


public void windowClosing(WindowEvent el){
try{
conn.close();
}catch(SQLException e){
e.printStackTrace();
}finally{
System.exit(0);
}

}


public void showDate(){
try{
fieldText[0].setText(rs.getString("code"));
fieldText[1].setText(rs.getString("name"));
fieldText[2].setText(rs.getString("sex"));
fieldText[3].setText(rs.getString("address"));
fieldText[4].setText(rs.getString("room"));
fieldText[5].setText(rs.getString("tel"));
}catch(SQLException e){
JOptionPane.showMessageDialog(mainJframe, "无法获取数据");

}
}


protected void setTextState(boolean flag){
for(int i=0;i<fieldCnt;i++){
fieldText[i].setEditable(flag);
}
}


protected void setTextEmpty(){
for(int i=0;i<fieldCnt;i++){
fieldText[i].setText(null);
}
}

protected void doMoveFirst(){
if(curRow<=1){
firstBtn.setEnabled(false);
preBtn.setEnabled(false);
curRow=1;
return;
}
try{
if(rs.first()){
showDate();
curRow=1;
firstBtn.setEnabled(false);
preBtn.setEnabled(false);
nextBtn.setEnabled(true);
lastBtn.setEnabled(true);
}
}catch(SQLException el){
JOptionPane.showMessageDialog(mainJframe, "移动游标出错");
}
}

protected void doMovePrevior(){
if(curRow<=1){
firstBtn.setEnabled(false);
preBtn.setEnabled(false);
curRow=1;
return;
}
try{
if(rs.previous()){
showDate();
curRow--;
if(curRow==1){
firstBtn.setEnabled(false);
preBtn.setEnabled(false);
}
nextBtn.setEnabled(true);
lastBtn.setEnabled(true);
}
}catch(SQLException el){
JOptionPane.showMessageDialog(mainJframe, "移动游标出错");
}
}

protected void doMoveNext(){
if(curRow>=recordCnt){
nextBtn.setEnabled(false);
lastBtn.setEnabled(false);
curRow=recordCnt;
return;
}
try{
if(rs.next()){
showDate();
curRow++;
if(curRow==recordCnt){
nextBtn.setEnabled(false);
lastBtn.setEnabled(false);
}
firstBtn.setEnabled(true);
preBtn.setEnabled(true);
}
}catch(SQLException el){
JOptionPane.showMessageDialog(mainJframe, "移动游标出错");
}
}

protected void doMoveLast(){
if(curRow>=recordCnt){
nextBtn.setEnabled(false);
lastBtn.setEnabled(false);
curRow=1;
return;
}
try{
if(rs.last()){
showDate();
curRow=recordCnt;
nextBtn.setEnabled(false);
lastBtn.setEnabled(false);
firstBtn.setEnabled(true);
preBtn.setEnabled(true);
}
}catch(SQLException el){
JOptionPane.showMessageDialog(mainJframe, "移动游标出错");
}
}

protected void doAdd(){
if(recordState==onlyRead){
firstBtn.setEnabled(false);
preBtn.setEnabled(false);
nextBtn.setEnabled(false);
lastBtn.setEnabled(false);
addBtn.setEnabled(true);
editBtn.setEnabled(false);
delBtn.setEnabled(false);
cancelBtn.setEnabled(true);
saveBtn.setEnabled(true);
recordState=adding;
setTextState(true);
setTextEmpty();
}else{
if(doSave(false))
setTextEmpty();
}
}

protected boolean doSave(boolean goViewState){
try{
if(recordState==amending){
for(int i=0;i<fieldCnt;i++)
rs.updateString(i+1, fieldText[i].getText());
rs.updateRow();
goViewState=true;
}else if(recordState==adding){
rs.moveToInsertRow();
for(int i=0;i<fieldCnt;i++)
rs.updateString(i+1,fieldText[i].getText());
rs.insertRow();
recordCnt++;
curRow=recordCnt;
rs.last();
}
}catch(SQLException e){
JOptionPane.showMessageDialog(mainJframe,"保存数据不成功");
return false;
}
if(goViewState){
firstBtn.setEnabled(true);
preBtn.setEnabled(true);
nextBtn.setEnabled(false);
lastBtn.setEnabled(false);
addBtn.setEnabled(true);
editBtn.setEnabled(true);
delBtn.setEnabled(true);
cancelBtn.setEnabled(false);
saveBtn.setEnabled(false);
recordState=onlyRead;
setTextState(false);
}
return true;
}

protected void doEdit(){
if(0==recordCnt) return;

firstBtn.setEnabled(false);
preBtn.setEnabled(false);
nextBtn.setEnabled(false);
lastBtn.setEnabled(false);
addBtn.setEnabled(false);
editBtn.setEnabled(false);
delBtn.setEnabled(false);
cancelBtn.setEnabled(true);
saveBtn.setEnabled(true);
recordState=amending;
setTextState(true);
}

protected void doCancel(){
if(recordCnt==0) return;
try{
rs.absolute(curRow);
showDate();
if(curRow>1){
firstBtn.setEnabled(true);
preBtn.setEnabled(true);
}
if(curRow<recordCnt){
nextBtn.setEnabled(true);
lastBtn.setEnabled(true);
}
addBtn.setEnabled(true);
editBtn.setEnabled(true);
delBtn.setEnabled(true);
cancelBtn.setEnabled(false);
saveBtn.setEnabled(false);
recordState=onlyRead;
setTextState(false);
}catch(SQLException e){
JOptionPane.showMessageDialog(mainJframe, "游标移动错误");
}
}

protected void doDelete(){
if(0==recordCnt) return;
if(JOptionPane.showConfirmDialog(mainJframe, "删除后将不可恢复!确定要删除当前记录吗?","提示",JOptionPane.OK_CANCEL_OPTION)==JOptionPane.OK_OPTION){
try{
rs.deleteRow();
recordCnt--;
if(recordCnt>0){
if(curRow>=recordCnt)
curRow=recordCnt;
rs.absolute(curRow);
}else{
curRow=0;
setTextEmpty();
}
}catch(SQLException e){
JOptionPane.showMessageDialog(mainJframe, "删除数据出错");

}
}
}
public void actionPerformed(ActionEvent e){
Object obj;
obj=e.getSource();
if(obj==firstBtn){
doMoveFirst();
}else if(obj==preBtn){
doMovePrevior();
}else if(obj==nextBtn){
doMoveNext();
}else if(obj==lastBtn){
doMoveLast();
}else if(obj==addBtn){
doAdd();
}else if(obj==saveBtn){
doSave(true);
}else if(obj==editBtn){
doEdit();
}else if(obj==cancelBtn){
doCancel();
}else if(obj==delBtn){
doDelete();
}

}
}




错误提示

Exception in thread "main" java.lang.ClassCastException: study.AddressList cannot be cast to java.awt.event.ActionListener
at study.AddressList.<init>(AddressList.java:55)
at study.AddressList.main(AddressList.java:96)
...全文
118 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
一起来玩玩呗 2012-12-17
  • 打赏
  • 举报
回复
看看55行和96行

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧