java吧 关注:1,220,413贴子:12,673,543
  • 7回复贴,共1

【原创】用java实现图片幻灯片自动播放

只看楼主收藏回复

​JLayeredPanel实现JButton操控控件显示层替换
http://www.oschina.net/code/snippet_54100_1239
在java中如何设置窗体背景
http://www.doc88.com/p-90493979840.html
经过测试后的JLayeredPanel部分代码
package indoorMoniterSystem; import java.awt.Dimension;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.Timer; @SuppressWarnings("serial")
public class IndoorMoniterPanel_BG extends JPanel{
ImageIcon img0 = new ImageIcon("images\\garage0.png");
ImageIcon img1 = new ImageIcon("images\\garage1.png");
ImageIcon img2 = new ImageIcon("images\\garage2.png");
ImageIcon img3 = new ImageIcon("images\\garage3.png");
ImageIcon img4 = new ImageIcon("images\\garage4.png");
ImageIcon img5 = new ImageIcon("images\\garage5.png");
public JLayeredPane layeredPane = new JLayeredPane();
public JLabel distance = new JLabel("距离");
public JTextField distanceData = new JTextField(4);
public JLabel cm = new JLabel("cm");
public JLabel calam = new JLabel("报警提示");
public JTextField calamData = new JTextField(4);
Point origin = new Point(10, 20);
JLabel bg0 = new JLabel(img0); JLabel bg1 = new JLabel(img1);
JLabel bg2 = new JLabel(img2); JLabel bg3 = new JLabel(img3);//每次导入即声明一个对象
JLabel bg4 = new JLabel(img4);//每次导入即声明一个对象
JLabel bg5 = new JLabel(img5);//每次导入即声明一个对象
public IndoorMoniterPanel_BG(){
setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
layeredPane = new JLayeredPane();
layeredPane.setPreferredSize(new Dimension(1200, 760));
layeredPane.setOpaque(false);
JPanel panel = new JPanel();
// panel.add(layeredPane);
panel.add(distance);
panel.add(distanceData);
panel.add(cm);
panel.add(calam);
panel.add(calamData);
panel.setOpaque(false);
layeredPane.add(panel,new Integer(7));
panel.setBounds(50,700, img0.getIconWidth(), img0.getIconHeight());
layeredPane.add(bg0,new Integer(5));
bg0.setBounds(0, 0, img0.getIconWidth(), img0.getIconHeight());
layeredPane.add(bg1,new Integer(4));
bg1.setBounds(0, 0, img1.getIconWidth(), img1.getIconHeight());
layeredPane.add(bg2,new Integer(3));
bg2.setBounds(0, 0, img1.getIconWidth(), img2.getIconHeight());
layeredPane.add(bg3,new Integer(2));
bg3.setBounds(0, 0, img3.getIconWidth(), img3.getIconHeight());
layeredPane.add(bg4,new Integer(1));
bg4.setBounds(0, 0, layeredPane.getWidth(), layeredPane.getHeight());
layeredPane.add(bg5,new Integer(0));
bg4.setBounds(0, 0, img5.getIconWidth(), img5.getIconHeight());
add(layeredPane);
Timer timer = new Timer(1000, new TimerListener());
try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
timer.start();
}
class TimerListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
double k = Math.random()*100;
distanceData.setText(String.valueOf(k));
if(k<70){
layeredPane.setLayer(bg1, new Integer(6)); // 重新设置组件层数
System.out.println("k1="+k);
}
if(k<60){
layeredPane.setLayer(bg2, new Integer(6)); // 重新设置组件层数
System.out.println("k2="+k);
}
if(k<50){
layeredPane.setLayer(bg3, new Integer(6)); // 重新设置组件层数
System.out.println("k3="+k);
}
if(k<40){
layeredPane.setLayer(bg4, new Integer(6)); // 重新设置组件层数
System.out.println("k4="+k);
}
if(k<20){
layeredPane.setLayer(bg0, new Integer(6)); // 重新设置组件层数
}
}
}
}



IP属地:广东1楼2012-10-18 17:40回复
    ,支持下


    IP属地:江苏来自Android客户端3楼2012-10-18 17:47
    收起回复
      多大点事,话说你是大神。


      IP属地:新加坡4楼2012-10-18 17:50
      收起回复
        http://www.docin.com/p-273563087.html
        刚刚发觉还有一些资料,挺不错的。mark,mark。


        IP属地:广东5楼2012-10-18 17:53
        回复
          楼主能给个完整代码不


          6楼2016-12-08 10:37
          回复
            可以的


            IP属地:广东7楼2017-05-10 16:18
            回复