看一看!!
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.util.*;public class TimerDemo implements ActionListener,ChangeListener{

JFrame f=null;
ImageIcon[] icons;
JSlider slider;
JLabel label;
JToggleButton toggleb1,toggleb2;
JButton b;
javax.swing.Timer timer;
int index=0;

public TimerDemo(){
f=new JFrame("Timer Example");
Container contentPane=f.getContentPane();
icons=new ImageIcon[5];
for(int i=0;i<icons.length;i++){
icons[i]=new ImageIcon("doc"+(i+1)+".gif");
}

label=new JLabel(icons[0]);
JPanel panel1=new JPanel();
panel1.setLayout(new GridLayout(2,1));
slider=new JSlider();
slider.setPaintTicks(true);
slider.setMajorTickSpacing(20);
slider.setMinorTickSpacing(10);
slider.setPaintLabels(true);
slider.addChangeListener(this);
panel1.add(slider);

JPanel buttonPanel=new JPanel();
buttonPanel.setLayout(new GridLayout(1,3));
toggleb1=new JToggleButton("Start");
toggleb1.addActionListener(this);
buttonPanel.add(toggleb1);

b=new JButton("Restart");
b.addActionListener(this);
buttonPanel.add(b);

toggleb2=new JToggleButton("Don't Repeat");
toggleb2.addActionListener(this);
buttonPanel.add(toggleb2);
panel1.add(buttonPanel);

Hashtable table=new Hashtable();
table.put(new Integer(0),new JLabel("&micro;&Iacute;"));
table.put(new Integer(50),new JLabel("&Ouml;&ETH;"));
table.put(new Integer(100),new JLabel("&cedil;&szlig;"));
slider.setLabelTable(table);

timer=new javax.swing.Timer(slider.getValue()*10,this);

contentPane.add(label,BorderLayout.CENTER);
contentPane.add(panel1,BorderLayout.SOUTH);

f.pack();
f.show();

f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
f.dispose();
System.exit(0);
}
});
}

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

public void actionPerformed(ActionEvent e){
if(e.getSource()==toggleb1){
if(e.getActionCommand().equals("Start")){
timer.start();
toggleb1.setText("Stop");
}
if(e.getActionCommand().equals("Stop")){
timer.stop();
toggleb1.setText("Start");
}
}
if(e.getSource()==toggleb2){
if(timer.isRepeats()){
timer.setRepeats(false);
}
else{
timer.setRepeats(true);
timer.start();
}
}
if(e.getSource()==b){
slider.setValue(50);
timer.restart();
}
if(e.getSource()==timer){
if(index==5){
index=0;
}
label.setIcon(icons[index]);
label.repaint();
index++;
}
}

public void stateChanged(ChangeEvent e){
timer.setDelay(slider.getValue()*10);
}
}

解决方案 »

  1.   

    看一看<java与模式>那本书就一切都明白了
      

  2.   

    去看书吧,Thinking in Java讲的很清楚啊
      

  3.   

    Java中是单继承,即只能从一个类中继承,所以要想实现多继承,必须现实接口。
    类中方法已经实现,所以从类中进行继承是继承了方法中的功能,即基于实现(功能)
    进行继承,而接口中的方法没有方法体,所以是基于接口进行继承。
      

  4.   

    interface Student
    {
    }interface Man
    {
    }public class MyClass implements Student, Man
    {
    MyClass me = new MyClass();
    }//这样me instanceof Student,而且me instanceof Student Man
      

  5.   

    如果继承的是类,也就是非接口,只能继承一个,但如果是接口就可以继承多个了。当然,你继承了一个类(非接口)的同时,也可以继承接口。看下面import java.util.*;interface CanFight {
      void fight();
    }interface CanSwim {
      void swim();
    }interface CanFly {
      void fly();
    }class ActionCharacter {
      public void fight() {}
    }class Hero extends ActionCharacter 
        implements CanFight, CanSwim, CanFly {
      public void swim() {}
      public void fly() {}
    }public class Adventure {
      static void t(CanFight x) { x.fight(); }
      static void u(CanSwim x) { x.swim(); }
      static void v(CanFly x) { x.fly(); }
      static void w(ActionCharacter x) { x.fight(); }
      public static void main(String[] args) {
        Hero h = new Hero();
        t(h); // Treat it as a CanFight
        u(h); // Treat it as a CanSwim
        v(h); // Treat it as a CanFly
        w(h); // Treat it as an ActionCharacter
      }
    } ///:~
    ------------------------------------
    体验速度,体验CSDN新版论坛助手:http://community.csdn.net/Expert/TopicView.asp?id=3108679
      

  6.   

    接口可以多重继承我明白,上面各位所举的例子也基本都是关于接口之间的多重继承,可是假如有两个类,那么想创建一个新类来继承它们,用接口怎样实现。我原来学过C++,对C++的多重继承较熟悉,但对Java中的这种情况理解的还是不透。