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秒显示下一张图片。
自己定位图片显示的位置。