add a Timer , control the pictures's changes

解决方案 »

  1.   

    看看下面代码就会了:
    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);
    }
    }