这也是以前写的一个东西,全屏下运行,很像是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模仿屏保程序,有点和WINDOWS中的一个屏保程序有些类似,看了绝对有启发写程序的思路
在Java开发中,模拟Windows屏保中的球体自由相撞效果是一个有趣的图形编程挑战,它涉及到计算机图形学、物理运动规律以及多线程技术。这个项目可以帮助开发者加深对Java图形库的理解,例如Java AWT(Abstract Window...
模拟屏保是保护屏幕并节省能源的一种方式。在Java中,开发者可能创建了一个全屏窗口,并在用户无操作达到一定时间后显示。这可能涉及到WindowListener或者KeyListener接口,用来检测用户的键盘或鼠标活动。一旦检测...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
在这个名为“基于黑客帝国著名的‘数字雨’效果的屏幕保护.zip”的压缩包中,包含了一个名为“MatrixSaver-master”的文件,我们可以推测这是一款模仿《黑客帝国》数字雨效果的屏幕保护程序。 首先,我们来理解一下...
它模仿了Java虚拟机(JVM)的环境,使用户可以在PC上体验和测试Java ME应用,包括手机理财软件。通过这个模拟器,开发者可以调试和测试他们在手机上的表现,而用户则可以在没有实际手机的情况下试用这些应用程序。 ...
日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...
日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...
Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 Calendar万年历 1个目标文件 EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行...
日历表格面板 [ConfigLine.java] 控制条类 [RoundBox.java] 限定选择控件 [MonthMaker.java] 月份表算法类 [Pallet.java] 调色板,统一配色类 Java扫雷源码 Java生成自定义控件源代码 2个目标文件 Java实现HTTP连接...
"数字雨"是一款独特的屏幕保护程序,它模仿了黑客电影中常见的数字滚动效果,营造出一种科技感十足的视觉体验。这款屏幕保护程序在用户未与计算机交互一段时间后,会在屏幕上模拟出随机数字和字符连续下落的效果,...
此外,开发者还提到,通过修改后缀为.scr,该程序还可以作为屏幕保护程序使用。 至于如何打包,开发者建议新手如果需要分享这个程序给别人,尤其是没有Java环境的女性亲友,应当在打包时一并包含JRE。这是因为...
QQ九宫格锁屏是一种流行的安全机制,常用于智能手机和平板电脑,为用户提供了一种简单而有趣的方式来保护他们的设备。这种锁屏方式以其独特的交互设计和一定的安全性深受用户喜爱。在本文中,我们将深入探讨“模仿QQ...
这个项目旨在为Android设备创建一个动态壁纸应用,它能够模拟一个生动的水族馆场景,就像电脑屏幕保护程序一样,带给用户沉浸式且交互式的体验。在Android平台上,开发者可以利用Java编程语言和Android SDK来实现...
【小程序名称】注重数据安全与隐私保护,严格遵守国家法律法规和微信平台的规定,确保用户数据的安全无虞。此外,其背后的开发团队持续迭代更新,根据用户反馈不断优化产品性能,提升服务质量,致力于打造一个贴近...
"数字雨屏保"是一种基于计算机图形学技术的屏幕保护程序,它模仿了电影《黑客帝国》中的经典视觉效果——“数字雨”。这种屏保在静止的屏幕上模拟出无数数字和字符垂直下落的场景,营造出一种科技感十足的氛围。下面...
Java山寨QQ项目是一个基于Java语言实现的即时通讯应用,它旨在模仿QQ的主要功能,包括聊天、好友管理等,并且特别地,它集成了一个截屏工具。这个项目对于学习Java编程,尤其是网络通信和图形用户界面设计的开发者来...