public class ProgressBarDemo extends JFrame{
 protected int m_min=0;
 protected int m_max=100;
 protected int m_counter=0;
 protected JProgressBar jpb;
    public ProgressBarDemo(JButton button) {     
     jpb=new JProgressBar();
     jpb.setMinimum(m_min);
     jpb.setMaximum(m_max);
     jpb.setStringPainted(true);
     button.addActionListener(new ActionListener(){
       public void actionPerfromed(ActionEvent e){
         new UpdateThread().start();
      }         
      });    
     //getContentPane().add(jpb,BorderLayout.CENTER);
     //getContentPane().add(button,BorderLayout.WEST);
     setSize(300,70);
     setVisible(true);
    }
    
    class UpdateThread extends Thread
    {
     Runnable runme;
     public UpdateThread(){
      runme=new Runnable(){
       public void run(){
       jpb.setValue(m_counter);
       }
     };        
    }
    public void run()
    {
     m_counter=m_min;
     while(m_counter<=m_max){
     SwingUtilities.invokeLater(runme);
     m_counter++;
     try{
      Thread.sleep(500);
     }
     catch (Exception ex){}
     }//end while
    }//end run}//end class在下边的new处有问题,不知道怎么解决。
button.addActionListener(new ActionListener(){

解决方案 »

  1.   

    有人能解决我的问题吗?报的错是
    "ProgressBarDemo.java": <anonymous <init>> is not abstract and does not override abstract method actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener at line 54, column 32
      

  2.   

    ActionListener 是一接口,不能new,new的必须是一个非接口和抽象的类,必须先定义一个类,然后new
      

  3.   

    button.addActionListener(new ActionListener(){
           public void actionPerfromed(ActionEvent e){
             new UpdateThread().start();
          }         
          });    上边的代码怎么改就对了,我也知道它的new不对,就是因为不知道该怎么做了,所以才问的
      

  4.   

    我这代码是从书上找到的例子,不应该有错才对呀,怎么才能解决呢,就new这有问题,具体怎么解决呀,我是新手,不知道怎么改了。
      

  5.   

    你写的代码:actionPerfromed拼写有问题
    正确的:actionPerformed。其实这类问题很容易解决的。既然告诉你没有覆盖基类的抽象方法,你就自己检查吧,肯定是拼写有问题,或者就是参数类型不匹配才导致的。推荐你两个检查办法:
    1、如果你用JBuilder的话,可以设置覆盖与基类方法的颜色,自己设置个比较醒目的就行了,例如,你把所有覆盖的方法设置为红色,那么你在写actionPerfromed得时候就一定不是红色的了,一下子就能发现有问题。
    2、可以用java1.5里面的Annotation注释来解决。在覆盖的方法上加一句@Override,到时候编译时就会帮你检查是否覆盖了基类方法。具体操作网上教程颇多,自己找吧