RT!
请问如何使用多线程实现两张图片互换?比如在同一个Panel上,两张图片,隔一秒种显示一张图片

解决方案 »

  1.   

    上面用JLabel,不用panel,说错了!
      

  2.   

    class WorkThread implement Runnable
    {
       public void run()
       {
          //执行更换图片代码
          try{
            Thread.sleep(1000);
          }catch(Exception e){}
       }
    }在窗口显示以后调用new Thread(new WorkThread ()).start();有段时间没写java代码了,有点手生,错了别见怪。
      

  3.   

    将:01.jpg,02.jpg 放在Test.class 同目录下!import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
    import java.net.URL;public class Test extends JFrame implements ActionListener
    {
    private JLabel IconLabel;
    private boolean even;

    public Test()
    {
    super("换图测试");

    try {
    ImageIcon img = new ImageIcon(Test.class.getResource("01.jpg"));
    System.out.println(img);
    IconLabel = new JLabel(img);
    } catch(Exception e3)
    {
    e3.printStackTrace();

    getContentPane().add(IconLabel,BorderLayout.CENTER);

    new Timer(2000,this).start();

    setSize(400,500);
    setVisible(true);
    }

    public void actionPerformed(ActionEvent e)
    {
    if (!even)
    {
    try {
    ImageIcon img = new ImageIcon(Test.class.getResource("01.jpg"));
    System.out.println(img);
    IconLabel.setIcon(img);
    even = !even;
    } catch(Exception e1)
    {
    e1.printStackTrace();
    }
    }
    else
    {
    try {
    ImageIcon img = new ImageIcon(Test.class.getResource("02.jpg"));
    System.out.println(img);
    IconLabel.setIcon(img);
    even = !even;
    } catch(Exception e2)
    {
    e2.printStackTrace();
    }
    }
    }

    public static void main(String[] args)
    {
    Test app = new Test();

    app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    }