你的CreateFrame实现了ActionListener接口吗?

解决方案 »

  1.   

    public class CreateFrame extends JFrame implements ActionListener
      

  2.   

    那你有public actionPerformed(ActionEvent e){}这个事件处理函数吗?
      

  3.   

    在CreateOneButton中有ActionListener,也有actionPerformed,
    但在JFrame的继承类CreateFrame中我没有加ActionListener,因为我觉得
    如果在CreateFrame中加入ActionListener是针对Frame的事件监听,而我希望的是CreateOneButton中的actionPerformed里的
       Object source = evt.getsource() 语句,能够返回num[i]对象
      

  4.   

    看看扩展extends JFrame implements ActionListener
    你有public actionPerformed(ActionEvent e){}这个事件处理函数吗?
      

  5.   

    你应该在createframe中加入public class createFrame extends JFrame implements ActionListener然后在类的实现代码中实现public void actionPerformed(ActionEvent e){//...}这个方法
      

  6.   

    public class CreateFrame extends JFrame implements ActionListener
    {
    ...
       public void actionPerformed(ActionEvent e)
       { 
           ...
        }
    ...
    }
      

  7.   

    我的程序结构
    class CreatOneButton extends JButton
    implements ActionListener
    {....
      addActionListener(this);
      ....
     public void actionPerformed(ActionEvent e)
    {  Object source = e.getSource();
       System.out.println(source);
    }
    }class CreateFrame extends JFrame
    {....
     CreatOneButton[] num = CreateOneButton[48];
     num.addActionListener(this);
    }希望的是System.out.println(source)能够返回num[i],也就是说能够指出我按的是那个按钮。这种结构由问题,望大侠们给出好的建议
      

  8.   

    结构没问题, 这样改就可以了:
    class CreateOneButton extends JButton implements ActionListener{  
    CreateOneButton(String name){
    super(name);
    addActionListener(this);
    }
     public void actionPerformed(ActionEvent e)
    {  Object source = e.getSource();
       System.out.println(((CreateOneButton)source).getText());//print "button"+ i
    }
    }class CreateFrame extends JFrame 
    {

     CreateOneButton[] num =new CreateOneButton[48];
     CreateFrame(){
     JPanel p=new JPanel();
     for(int i=0; i<num.length; i++){
      num[i]=new CreateOneButton("button"+ i);
      p.add(num[i]);
     }
     getContentPane().add(p); 
     }
    }
    我是随手写的,可能有bug;
    从你的源程序看问题可能出在:
    class CreateFrame extends JFrame
    {....
     CreatOneButton[] num = CreateOneButton[48];
     num.addActionListener(this); //this=(CreateFrame)Object, it do not implement the interface ActionListener,so Exception is to be throwed...}
      

  9.   

    高手!问题得到解决!能否告知
    您对super()使用的理解,你想得到多少分呢?
      

  10.   

    又是一个不眠夜,CSDN要戒严了。记得葛优(演的一个人物)曾经说过:“……什么人都可以惹,唯独小人不能沾。”初春的一场小雪,纷纷扬扬地下着,掩饰了大地,掩盖了一切人间的罪恶。上帝说:“有阳光就有黑暗,有善举就有罪过。饶恕他吧。”