change pictures every 2 sec

别等时光非礼了梦想. 提交于 2020-01-04 04:24:33

问题


I stack a bit so if anyone has any ideas it would be helpful. So currently the program is compiling and running but I do not know how to finish it. I am using eclipse. What i want to do is when i start the program to change 4 different pictures in every 2 seconds so if you have any advices do not be shy. Here is the program.

/** Here is the GUI of the program
 * class name SlideShowGui.java
 * @author Kiril Anastasov
 * @date 07/03/2012
 */

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class SlideShowGui extends JPanel implements ActionListener 
{
    JLabel name, comments, images;
    JTextField namejtf, commentsjtf, captionjtf;
    JButton submit;
    ImageIcon pictures, pictures2, pictures3, pictures4;
    boolean go = true;

    SlideShowGui()
    {
        name = new JLabel("Name:");
        this.add(name);

        namejtf = new JTextField(15);
        this.add(namejtf);

        comments = new JLabel("Comments:");
        this.add(comments);

        commentsjtf = new JTextField(15);
        this.add(commentsjtf);

        submit = new JButton("Submit");
        this.add(submit);
        submit.addActionListener(this);
        pictures = new ImageIcon("galileo1.jpg");
        images = new JLabel(pictures);

        pictures2 = new ImageIcon("galileo2.jpg");
        pictures3 = new ImageIcon("galileo3.jpg");
        pictures4 = new ImageIcon("galileo4.jpg");
        this.add(images);

        captionjtf = new JTextField(24);
        this.add(captionjtf);

    }

    public void actionPerformed(ActionEvent ae)
    {

    }
}

/**The driver class of the program. Here is the JFrame 
 * class name TestSlideShow.java
 * @author Kiril Anastasov
 * @date 07/03/2012
 */

import java.awt.*;
import javax.swing.*;
public class TestSlideShow 
{
    public static void main(String[] args) 
    {
        JFrame application = new JFrame();
        SlideShowGui panel = new SlideShowGui();
        application.add(panel);
        application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        application.setSize(300,600);
        application.setLocation(400,100);
        application.setVisible(true);


    }

}

回答1:


  • put Icon / ImageIcons to the Queue, Map, Array, List, Vector

  • by starting Swing Timer pick up Icon / ImageIcon from the array

  • add Icon / ImageIcons to the JLabel, by using JLabel#setIcon()

  • code related for Swing GUI should be initialized from invokeLater(), more in the Initial Threads



来源:https://stackoverflow.com/questions/9606008/change-pictures-every-2-sec

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!