黑马程序员技术交流社区

标题: 一个添加功能的问题,求解啊 [打印本页]

作者: lvjayj    时间: 2013-8-7 11:28
标题: 一个添加功能的问题,求解啊
我现在有一个array,n多个JButton
那我想给他们加上功能总不能一个一个加吧!放在for循环里面貌似还是不行啊!!!
我的代码如下!
  1. public class StudentList implements ActionListener{
  2. private static JButton[] remove;
  3. public void actionPerformed(ActionEvent e){
  4. String numOfStudents = DataManager.getNumberOfStudents(EditClass.getSelectedTableName());
  5.                 try{
  6.                         studentNum=Integer.parseInt(numOfStudents);
  7.                 }
  8.                 catch(NumberFormatException ex){
  9.                         JOptionPane.showMessageDialog(frame, "Should be an integer: "+ex);
  10.                 }
  11. remove = new JButton[studentNum];
  12. for(int i=0;i<studentNum;i++){
  13.                                 remove[i].setBounds(243,92+30*i,85,20);
  14.                                 panel.add(remove[i]);
  15.                                 remove[i].addActionListener(new ActionListener(){
  16.                                         public void actionPerformed(ActionEvent ae){
  17.                                                 try{
  18.                                                         int result = JOptionPane.showConfirmDialog(null,
  19.                                                                         "Delete student?");
  20.                                                         switch (result) {
  21.                                                         case JOptionPane.YES_OPTION:                                                               
  22.                                                                 DataManager.deleteStudent(Integer.parseInt(studentID[i]),studentName[i]);
  23.                                                                 break;
  24.                                                         case JOptionPane.NO_OPTION:
  25.                                                                 break;
  26.                                                         case JOptionPane.CLOSED_OPTION:
  27.                                                                 break;
  28.                                                         }
  29.                                                 }catch (Exception ex){
  30.                                                         JOptionPane.showMessageDialog(panel, ex);
  31.                                                 }
  32.                                         }
  33.                                 });
  34.                         }
复制代码
Eclipse说问题出在DataManager.deleteStudent(Integer.parseInt(studentID),studentName);
这一行!
Cannot refer to a non-final variable i inside an inner class defined in a different method
这是怎么回事

我本来想用
public void actionPerformed(ActionEvent ae)
ae.getSource()这个方法不过这是array啊.....我应该咋办。。。。!
补充一下!Datamanager是另一个class
一定要帮忙啊谢谢大家!

作者: 神之梦    时间: 2013-8-7 20:44
顶一顶         




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2