随机更换窗体背景
来源:互联网 发布:知乎 北京 中科院 编辑:程序博客网 时间:2024/06/06 10:59
package table;import java.awt.BorderLayout;import java.awt.EventQueue;import java.awt.Graphics;import java.awt.Image;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.Random;import javax.swing.JFrame;import javax.swing.JPanel;class MyThread implements Runnable{public void run(){RandomBackgroundImage frame1=new RandomBackgroundImage();frame1.setVisible(true);}}public class RandomBackgroundImage extends JFrame{ private static final long serialVersionUID = -6482396499176910249L; private JPanel contentPane; private BackgroundPanel panel; private Image[] images; public static void main(String[] args) throws Exception{ MyThread mt=new MyThread(); Thread th=new Thread(mt); th.start(); Thread.sleep(10); EventQueue.invokeLater(new Runnable(){ public void run(){ try{ RandomBackgroundImage frame=new RandomBackgroundImage(); frame.setVisible(true); }catch(Exception e){ e.printStackTrace(); } } });} public RandomBackgroundImage(){ initPhotoArray(); addWindowListener(new WindowAdapter(){ public void windowActivated(WindowEvent arg0){ do_this_windowActivated(arg0); } }); setTitle("随机更换窗体背景"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100,100,400,412);//设置位置和大小 contentPane=new JPanel();//创建内容面板 contentPane.setLayout(new BorderLayout(0,0)); setContentPane(contentPane);//设置窗体内容面板 panel=new BackgroundPanel(); contentPane.add(panel);//吧窗体背景面板添加到窗体内容面板 } private void initPhotoArray(){ images=new Image[4];//初始化背景图数组 String photoPath="";//路径 for(int i=0;i<images.length;i++){//遍历数组并初始化所以元素 photoPath=(i+1)+".jpg";//生成文件名 images[i]=getToolkit().getImage(getClass().getResource(photoPath));//初始化数组 } } protected void do_this_windowActivated(WindowEvent arg0){ Random random=new Random();//创建随机数对象 int num=random.nextInt(4);//生成随机数 panel.setImage(images[num]);//设置面板背景图片 repaint();//重绘窗体界面 }}class BackgroundPanel extends JPanel{ private static final long serialVersionUID = 7758689434195492602L; private Image image; public BackgroundPanel(){//构造方法 super(); setOpaque(false); setLayout(null); } public void setImage(Image image){ this.image=image; } protected void paintComponent(Graphics g){//重写绘制组件 if(image!=null){ int width=getWidth(); int height=getHeight(); g.drawImage(image,0,0,width,height,this);//绘制图片与组件大小相同 } super.paintComponent(g); }}
阅读全文
0 0
- 随机更换窗体背景
- 背景随机更换问题
- 随机更换背景颜色和背景时钟
- 用资源文件在C#程序中动态更换窗体背景...
- JS 随机更换图片
- C# 窗体更换背景图片
- 更换磁盘背景
- 更换SAP登录背景
- Andriod更换背景颜色
- javascript更换背景
- C#窗体winform窗体皮肤的更换
- javascript定时更换表格背景
- MTK 更换主菜单背景
- android 动态更换界面背景
- 给子对话框更换背景
- MyEclipse更换背景主题方案
- photoshop实现图片更换背景
- 更换setting中的背景颜色
- HDU2041超级楼梯
- html框架标签
- mysql约束
- sql中的case when
- 动态创建表格
- 随机更换窗体背景
- 改善Java程序的151个建议 笔记
- 用JTree类实现日历
- HD2094产生冠军
- Windows10下启动nginx反向代理服务器失败的解决方法(重在解决:80端口被PID为4的System占用问题)
- mybatis语句总结
- 快速学习的几个基本原则
- Dubbo初体验
- 南阳acm517 最小公倍数(大数+数论)