看一看!!
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("µÍ"));
table.put(new Integer(50),new JLabel("ÖÐ"));
table.put(new Integer(100),new JLabel("¸ß"));
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);
}
}
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("µÍ"));
table.put(new Integer(50),new JLabel("ÖÐ"));
table.put(new Integer(100),new JLabel("¸ß"));
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);
}
}
类中方法已经实现,所以从类中进行继承是继承了方法中的功能,即基于实现(功能)
进行继承,而接口中的方法没有方法体,所以是基于接口进行继承。
{
}interface Man
{
}public class MyClass implements Student, Man
{
MyClass me = new MyClass();
}//这样me instanceof Student,而且me instanceof Student Man
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