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

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模仿屏保程序,有点和WINDOWS中的一个屏保程序有些类似,看了绝对有启发写程序的思路

    java模仿屏保程序

    java模仿屏保程序

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

    利用java开发,模仿windows屏保中球体来回自由相撞的效果

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

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

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

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

    java源码包4

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

    java源码包3

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

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

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    java源码包2

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

    成百上千个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写的模仿微信飞机大战的小程序.zip

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

    模仿抖音小程序后端.zip

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

    Android模仿微信和QQ首页下拉显示小程序控件.zip

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

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    除在保密期内的保密论文和在技术保护期限内的论文外,允许论文被查阅和借阅,可以公布(包括以电子信息形式刊登)论文的全部内容或中、英文摘要等部分内容。论文的公布(包括以电子信息形式刊登)授权东南大学研究生...

Global site tag (gtag.js) - Google Analytics