import java.awt.Image;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.ImageIcon;
/**
* 以继承TimerTask类的方式实现多线程
*/
public class MyTimerTask extends TimerTask {
private int index = 0;
testPanel test=new testPanel();
private Timer timer = new Timer();
private static final Image pathtempImg=new ImageIcon("C://Users//Public//Pictures//Sample Pictures//header0.jpg").getImage();
private static final Image normalImg=new ImageIcon("C://Users//Public//Pictures//Sample Pictures//header1.jpg").getImage();
private static final Image activeImg=new ImageIcon("C://Users//Public//Pictures//Sample Pictures//header2.jpg").getImage();
private static final Image TImg=new ImageIcon("C://Users//Public//Pictures//Sample Pictures//header3.jpg").getImage();
private static final Image FImg=new ImageIcon("C://Users//Public//Pictures//Sample Pictures//header4.jpg").getImage();
private static final Image FRImg=new ImageIcon("C://Users//Public//Pictures//Sample Pictures//header5.jpg").getImage();
private static final Image SImg=new ImageIcon("C://Users//Public//Pictures//Sample Pictures//header6.jpg").getImage();
private static final Image[] imageArray=new Image[]{pathtempImg,normalImg,activeImg,TImg,FImg,FRImg,SImg};
Date d=new Date();
Date d2=new Date();
Calendar cpcalendar = new GregorianCalendar();
Calendar cpcalendar2 = new GregorianCalendar();
@Override
public void run() {
String date1="2011-1-10 16:00:00";
String date2="2011-1-10 18:36:00";
SimpleDateFormat f=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
d=f.parse(date1);
cpcalendar.setTime(d);
d2=f.parse(date2);
cpcalendar2.setTime(d2);
} catch (ParseException e) {
e.printStackTrace();
}
Calendar c2 = Calendar.getInstance();
if(c2.getTimeInMillis() < cpcalendar.getTimeInMillis()){
test.setPanelImage(null);
System.out.println("节目单播放时间未开始!请等待ing....");
}
if(c2.getTimeInMillis()>cpcalendar.getTimeInMillis() && c2.getTimeInMillis()<cpcalendar2.getTimeInMillis()){
System.out.println("index="+index);
if(index==imageArray.length){
index=0;
}
test.setPanelImage(imageArray[index]);
index++;
System.out.println("线程运行中ing...当前时间:"+c2.getTime());
}
if(c2.getTimeInMillis() > cpcalendar2.getTimeInMillis()){
this.cancel();
timer=null;
test.setPanelImage(null);
System.out.println("节目单播放完成!");
return;
}
}
public void start() {
timer.scheduleAtFixedRate(this, new Date(), 1000); // 设置定时任务执行时间,及其速率(2s执行一次)
System.out.println("开启线程:scheduled time : " + this.scheduledExecutionTime());
}
public long getScheduleTime() {
return this.scheduledExecutionTime();
}
public static void main(String[] args) {
MyTimerTask mtt = new MyTimerTask();
mtt.start();
}
}
==========================
import java.awt.Image;
import java.io.IOException;
import java.util.Timer;
import javax.swing.Box;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class testPanel {
private JFrame f = new JFrame("测试");
private Box horizontal = Box.createHorizontalBox();
public void setPanelImage(Image image){
horizontal.removeAll();
JTestPanel panel=new JTestPanel(image);
horizontal.add(panel);
f.add(horizontal);
f.setVisible(true);
}
/**
* Create the application.
*/
public testPanel() {
init();
}
public void init(){
//禁用窗口装饰品(最大化最小化)
f.setUndecorated(true);
//置顶显示
f.setAlwaysOnTop(true);
//这个就是设置窗口最大化
f.setExtendedState(javax.swing.JFrame.MAXIMIZED_BOTH);
f.getGraphicsConfiguration().getDevice().setFullScreenWindow(f);
// f.setSize(415,280);
Image img=new ImageIcon("C://Users//Public//Pictures//Sample Pictures//header6.jpg").getImage();
JTestPanel panel= new JTestPanel(img);
f.getLayeredPane().add(panel, new Integer(Integer.MIN_VALUE));
panel.setBounds(0, 0, new ScreenSize().getScreenWidth(),new ScreenSize().getScreenHeight());
((JPanel)f.getContentPane()).setOpaque(false);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
===============================
import java.awt.*;
import javax.swing.*;
@SuppressWarnings("serial")
public class JTestPanel extends JPanel{
protected Image image;
public JTestPanel(Image image){
super();
this.image=image;
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
//参数是定位图片的位置。
if (this.image != null) g.drawImage(this.image, 0, 0, 300,200, this);
}
}
===============================
/**
* 获取屏幕分辨率
* @author cmxie
*
*/
public class ScreenSize {
/**
* 屏幕的宽
*/
private int screenWidth;
/**
* 屏幕的高
*/
private int screenHeight;
/**
* 设置屏幕的宽
* @param screenWidth
*/
public void setScreenWidth(int screenWidth){
this.screenWidth = screenWidth;
}
/**
* 获取屏幕的高
* @return
*/
public int getScreenHeight() {
setScreenHeight((int)java.awt.Toolkit.getDefaultToolkit().getScreenSize().height);
return screenHeight;
}
/**
* 设置屏幕的高
* @param screenHeight
*/
public void setScreenHeight(int screenHeight) {
this.screenHeight = screenHeight;
}
/**
* 获取屏幕的宽
* @return
*/
public int getScreenWidth() {
setScreenWidth((int)java.awt.Toolkit.getDefaultToolkit().getScreenSize().width);
return screenWidth;
}
public static void main(String [] args){
System.out.println("width="+new ScreenSize().getScreenWidth());
System.out.println("heigh="+new ScreenSize().getScreenHeight());
}
}
==============================
图片循环显示,每隔n秒显示下一张图片。
自己定位图片显示的位置。