`
lbfhappy
  • 浏览: 83231 次
社区版块
存档分类
最新评论

JAVA模仿屏保

阅读更多
这也是以前写的一个东西,全屏下运行,很像是WINDOWS下的屏保,会显示时钟,并且会随机自然地碰撞.全屏状态下如需退出,请按小键盘上的0退出.
点击下载可执行的JAR文件,JDK1.5以上
import java.text.*;
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
import java.util.*;
import java.awt.event.*;
/*
 * ScreenTest.java
 *
 * Created on 2006年7月6日, 下午5:23
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 
*/

/**
 *
 * 
@author lbf
 
*/
public class ScreenTest extends JPanel implements Runnable{
    
    
/** Creates a new instance of ScreenTest */
    
private String time;
    
private Rectangle2D rd;
    
private int x,y,a,b;//座标值和方向值
    private int rgb=0;//颜色的值
    private Color color;//字体的颜色
    private int width,height;//屏幕的大小
    public ScreenTest(int width,int height) {
        
this.width=width;
        
this.height=height;
        initWindow();
    }
    
private void initWindow(){
        x
=(int)(Math.random()*300);
        y
=(int)(Math.random()*500);
        a
=1;
        b
=1;
        
this.setBackground(Color.BLACK);
        
this.setOpaque(true);
        rd
=new Rectangle2D.Double(10,10,101,10);
        color
=Color.YELLOW;
    }
    
private void doColor(){
       rgb
=(int)(Math.random()*0xFFFFFF);
           color
=new Color(rgb);
     }
    
public void paintComponent(Graphics g){
        g.setColor(Color.BLACK);
        g.fillRect(
0,0,width,height);
        g.setColor(color);
        g.setFont(
new Font("楷书",Font.BOLD,150));
        FontMetrics fm
=g.getFontMetrics();
        rd
=fm.getStringBounds(time,g);
        g.drawString(time,x,(
int)(y+rd.getHeight()));
      }
    
private void doTime(){
        Calendar cal
=Calendar.getInstance();
        DateFormat df
=DateFormat.getTimeInstance(DateFormat.MEDIUM);
        Date date
=cal.getTime();
        time
=df.format(date);
        x
+=a;
        y
+=b;
        
double width1=rd.getWidth();
        
double height1=rd.getHeight();
        rd.setRect(x,y,width1,height1);
        
if(rd.intersectsLine(width,0,width,height)){
            doColor();
            a
=-1;
        }
        
else if(rd.intersectsLine(0,0,0,height)){
            doColor();
            a
=1;
        }
        
else if(rd.getY()<=-80){
             doColor();
             b
=1;
        }
        
else if(rd.intersectsLine(0,height,width,height)){
           doColor();
            b
=-1;
        }
        
    }
    
public void run(){
        
while(true){
            
try{
                Thread.sleep(
2);
                doTime();
                repaint();
            }
            
catch(InterruptedException ie){
                ie.printStackTrace();
            }
        }
    }
   
public  static void main(String arsg[]){
        
        GraphicsDevice gd
=GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
        DisplayMode dm
=gd.getDisplayMode();
        
int width=dm.getWidth();
        
int height=dm.getHeight();
        System.out.println(
"width="+width+"\nheight="+height);
        ScreenTest st
=new ScreenTest(width,height);
        
final JFrame jf=new JFrame();
        jf.getContentPane().add(st,BorderLayout.CENTER);
        jf.setUndecorated(
true);
        gd.setFullScreenWindow(jf);
        
new Thread(st).start();
        jf.addKeyListener(
new KeyAdapter(){
           
public void keyReleased(KeyEvent ke){
               
if(ke.getKeyCode()==KeyEvent.VK_NUMPAD0)
                   System.exit(
0);
                } 
        });
    }
    
}
分享到:
评论

相关推荐

    java模仿屏保程序

    Java模仿屏保程序是一种利用Java编程语言开发的交互式应用程序,它在用户无操作时自动启动,以防止屏幕长时间静止导致烧屏或节能。在本项目中,我们将探讨如何使用Java来创建一个简单的屏保程序,涉及的主要知识点...

    JAVA模仿屏保程序(很创新)

    JAVA模仿屏保程序,有点和WINDOWS中的一个屏保程序有些类似,看了绝对有启发写程序的思路

    java模仿windows屏保中球体来回自由相撞的效果

    在Java开发中,模拟Windows屏保中的球体自由相撞效果是一个有趣的图形编程挑战,它涉及到计算机图形学、物理运动规律以及多线程技术。这个项目可以帮助开发者加深对Java图形库的理解,例如Java AWT(Abstract Window...

    Java时间工具(带指针的圆形盘表,闹钟,定时关机,模拟屏保)

    模拟屏保是保护屏幕并节省能源的一种方式。在Java中,开发者可能创建了一个全屏窗口,并在用户无操作达到一定时间后显示。这可能涉及到WindowListener或者KeyListener接口,用来检测用户的键盘或鼠标活动。一旦检测...

    java源码包---java 源码 大量 实例

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...

    java源码包3

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...

    java源码包2

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...

    基于黑客帝国著名的“数字雨”效果的屏幕保护.zip

    在这个名为“基于黑客帝国著名的‘数字雨’效果的屏幕保护.zip”的压缩包中,包含了一个名为“MatrixSaver-master”的文件,我们可以推测这是一款模仿《黑客帝国》数字雨效果的屏幕保护程序。 首先,我们来理解一下...

    java 手机 理财软件

    它模仿了Java虚拟机(JVM)的环境,使用户可以在PC上体验和测试Java ME应用,包括手机理财软件。通过这个模拟器,开发者可以调试和测试他们在手机上的表现,而用户则可以在没有实际手机的情况下试用这些应用程序。 ...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...

    java源码包4

    Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...

    JAVA上百实例源码以及开源项目源代码

    日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...

    屏幕保护程序-数字雨

    "数字雨"是一款独特的屏幕保护程序,它模仿了黑客电影中常见的数字滚动效果,营造出一种科技感十足的视觉体验。这款屏幕保护程序在用户未与计算机交互一段时间后,会在屏幕上模拟出随机数字和字符连续下落的效果,...

    仿黑客帝国弹幕雨java

    此外,开发者还提到,通过修改后缀为.scr,该程序还可以作为屏幕保护程序使用。 至于如何打包,开发者建议新手如果需要分享这个程序给别人,尤其是没有Java环境的女性亲友,应当在打包时一并包含JRE。这是因为...

    模仿QQ九宫格锁屏

    QQ九宫格锁屏是一种流行的安全机制,常用于智能手机和平板电脑,为用户提供了一种简单而有趣的方式来保护他们的设备。这种锁屏方式以其独特的交互设计和一定的安全性深受用户喜爱。在本文中,我们将深入探讨“模仿QQ...

    水族馆 android(与电脑屏保一样)

    这个项目旨在为Android设备创建一个动态壁纸应用,它能够模拟一个生动的水族馆场景,就像电脑屏幕保护程序一样,带给用户沉浸式且交互式的体验。在Android平台上,开发者可以利用Java编程语言和Android SDK来实现...

    用JAVA写的模仿微信飞机大战的小程序.zip

    【小程序名称】注重数据安全与隐私保护,严格遵守国家法律法规和微信平台的规定,确保用户数据的安全无虞。此外,其背后的开发团队持续迭代更新,根据用户反馈不断优化产品性能,提升服务质量,致力于打造一个贴近...

    数字雨屏保

    "数字雨屏保"是一种基于计算机图形学技术的屏幕保护程序,它模仿了电影《黑客帝国》中的经典视觉效果——“数字雨”。这种屏保在静止的屏幕上模拟出无数数字和字符垂直下落的场景,营造出一种科技感十足的氛围。下面...

    java山寨qq,有截屏工具

    Java山寨QQ项目是一个基于Java语言实现的即时通讯应用,它旨在模仿QQ的主要功能,包括聊天、好友管理等,并且特别地,它集成了一个截屏工具。这个项目对于学习Java编程,尤其是网络通信和图形用户界面设计的开发者来...

Global site tag (gtag.js) - Google Analytics