1、先写一个闪屏类
2、用户登陆窗口类
3、实现闪屏登陆效果
4、登陆窗口类中用到的类型
package com.mhl.Tools; import java.awt.*; import javax.swing.*; //开发一个闪屏类 public class paint extends JPanel implements Runnable { Thread t; int x=10; int i=0,j=40,u=10; // String gg[]={"系","统","正","在","加","载","请","稍","后"}; int k=0,tt=0; String shi[]={"满","汉","楼","融","满","汉","精","华","做","天","下","美","味", "招","八","方","食","客","结","四","海","良","朋","|","满","汉","楼","工","作","室"}; Font f=new Font("隶书",Font.PLAIN,18); boolean ifok=true; int width=180; int height=0; int dian=0; public paint() { t=new Thread(this); t.start(); } @Override public void run() { while(true) { if(x<=380) repaint(); try { Thread.sleep(100); i++; j=j-6; u=u+10; if(tt==3) width=width-20; if(i==4) { tt++; if(ifok&&x>120+k*20) k++; if(k>=gg.length-1) ifok=false; x=x+10; i=0; j=40; u=10; dian++; if(dian>3) dian=0; } } catch (InterruptedException e) { System.out.println("线程中断"); e.printStackTrace(); } } } public void paintComponent(Graphics g) { Image image; image=Toolkit.getDefaultToolkit().getImage("Images/index/index.gif"); g.drawImage(image, 0, 0, this.getWidth(), 200, this); int r=(int)(Math.random()*255); int b=(int)(Math.random()*255); int y=(int)(Math.random()*255); g.setColor(new Color(253,250,250)); g.fillRect(x, 210, 390-x, 30); g.setColor(new Color(253,250,250)); if(i>1) g.fillRect(x, 225-(j+20)/2, 10, j+20); if(j>25) g.setColor(new Color(r,b,y)); else g.setColor(new Color(123,194,252)); g.fillRect(x, 225-j/2, 10, j); g.setColor(new Color(123,194,252)); g.drawRect(10, 210, 380, 30); if(x<120) { for(int l=0;l<gg.length;l++) { g.setColor(new Color(0,0,0)); g.drawString(gg[l],120+l*20,230); } for(int l=0;l<dian;l++) { g.setColor(new Color(0,0,0)); g.drawString("*", 300+l*10, 235); } g.drawString("*", 300+10*dian, 235); } else { g.setColor(new Color(23,23,230)); g.drawString(gg[k],120+k*20,230); for(int l=k+1;l<gg.length;l++) { g.setColor(new Color(0,0,0)); g.drawString(gg[l],120+l*20,230); } if(x>300+dian*10) g.setColor(new Color(23,23,230)); for(int l=0;l<dian;l++) { g.drawString("*", 300+l*10, 235); } g.drawString("*",300+10*dian,235); } //-----------逐字写诗 if(tt<3) { for(int rr=0;rr<=tt;rr++) { g.setColor(new Color(r,b,y)); g.drawString(shi[rr], 170, 60+rr*20); } g.drawString(shi[tt], 170, 60+tt*20); } if(tt>=3&&tt<7) { g.setColor(new Color(230,0,0)); for(int rr=0;rr<3;rr++) g.drawString(shi[rr], 170, 60+rr*20); g.setColor(new Color(r,b,y)); if(tt<8) for(int rr=3;rr<=tt;rr++) g.drawString(shi[rr], 150, rr*20-20); if(tt>=7) { for(int rr=3;rr<=7;rr++) g.drawString(shi[rr], 150, rr*20-20); } } if(tt>=7&&tt<13) { g.setColor(new Color(230,0,0)); for(int rr=0;rr<3;rr++) g.drawString(shi[rr], 170, 60+rr*20); for(int rr=3;rr<=7;rr++) g.drawString(shi[rr], 150, rr*20-20); g.setColor(new Color(r,b,y)); if(tt<13) for(int rr=8;rr<=tt;rr++) g.drawString(shi[rr], 120, rr*20-120); //减120,是因为此时rr不是5,而是在7~13之间,减去前面的5个*20,再减20,即减120 if(tt>=13) for(int rr=8;rr<=13;rr++) g.drawString(shi[rr], 120, rr*20-120); } if(tt>=13&&tt<18) { g.setColor(new Color(230,0,0)); for(int rr=0;rr<3;rr++) g.drawString(shi[rr], 170, 60+rr*20); for(int rr=3;rr<=7;rr++) g.drawString(shi[rr], 150, rr*20-20); for(int rr=8;rr<13;rr++) g.drawString(shi[rr], 120, rr*20-120); g.setColor(new Color(r,b,y)); if(tt<18) for(int rr=13;rr<=tt;rr++) g.drawString(shi[rr], 90, rr*20-220); if(tt>=18) for(int rr=13;rr<=18;rr++) g.drawString(shi[rr], 90, rr*20-220); } if(tt>=18&&tt<23) { g.setColor(new Color(230,0,0)); for(int rr=0;rr<3;rr++) g.drawString(shi[rr], 170, 60+rr*20); for(int rr=3;rr<=7;rr++) g.drawString(shi[rr], 150, rr*20-20); for(int rr=8;rr<13;rr++) g.drawString(shi[rr], 120, rr*20-120); for(int rr=13;rr<18;rr++) g.drawString(shi[rr], 90, rr*20-220); g.setColor(new Color(r,b,y)); if(tt<23) for(int rr=18;rr<=tt;rr++) g.drawString(shi[rr], 60, rr*20-320); if(tt>=23) for(int rr=18;rr<=23;rr++) g.drawString(shi[rr], 60, rr*20-320); } if(tt>=23&&tt<30) { g.setColor(new Color(230,0,0)); for(int rr=0;rr<3;rr++) g.drawString(shi[rr], 170, 60+rr*20); for(int rr=3;rr<=7;rr++) g.drawString(shi[rr], 150, rr*20-20); for(int rr=8;rr<13;rr++) g.drawString(shi[rr], 120, rr*20-120); for(int rr=13;rr<18;rr++) g.drawString(shi[rr], 90, rr*20-220); for(int rr=18;rr<23;rr++) g.drawString(shi[rr], 60, rr*20-320); g.setColor(new Color(r,b,y)); if(tt<30) for(int rr=23;rr<=tt;rr++) g.drawString(shi[rr], 30, rr*20-400); if(tt>=30) for(int rr=23;rr<=30;rr++) g.drawString(shi[rr], 30, rr*20-400); } if(tt>=30) { g.setColor(new Color(230,0,0)); for(int rr=0;rr<3;rr++) g.drawString(shi[rr], 170, 60+rr*20); for(int rr=3;rr<=7;rr++) g.drawString(shi[rr], 150, rr*20-20); for(int rr=8;rr<13;rr++) g.drawString(shi[rr], 120, rr*20-120); for(int rr=13;rr<18;rr++) g.drawString(shi[rr], 90, rr*20-220); for(int rr=18;rr<23;rr++) g.drawString(shi[rr], 60, rr*20-320); for(int rr=23;rr<30;rr++) g.drawString(shi[rr], 30, rr*20-400); } } }
2、用户登陆窗口类
package com.mhl.View; import java.awt.*; import java.awt.event.*; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.*; import com.mhl.Tools.*; public class UserLogin extends JDialog implements ActionListener { /** * @param args */ LoginBackImage bgimage=null; //背景图片 paint p=null; //闪屏 JLabel jb1,jb2,jb3; JTextField juserName; JPasswordField jPwd; JButton jconfirm,jcancel; public static void main(String[] args) { UserLogin login=new UserLogin(); } public UserLogin() { jb1=new JLabel("请输入用户编号:"); jb1.setFont(myFont.f1); //设置jb1在容器中的位置和大小,注意:只有在空布局中才使用此设置 jb1.setBounds(60, 190, 150, 30); this.add(jb1); juserName=new JTextField(); juserName.setBounds(180,190,120,30); //设置下凹 juserName.setBorder(BorderFactory.createLoweredBevelBorder()); this.add(juserName); jb2=new JLabel("(或员工号)"); jb2.setFont(myFont.f4); jb2.setForeground(Color.red); jb2.setBounds(100,210,100,30); this.add(jb2); jb3=new JLabel("用户密码:"); jb3.setBounds(60,240,150,30); jb3.setFont(myFont.f1); this.add(jb3); jPwd=new JPasswordField(); jPwd.setBounds(180,240,120,30); //设置边框下凹 jPwd.setBorder(BorderFactory.createLoweredBevelBorder()); this.add(jPwd); jconfirm=new JButton("确定"); jconfirm.setBounds(105,300,75,30); jconfirm.setFont(myFont.f1); this.add(jconfirm); jcancel=new JButton("取消"); jcancel.setBounds(215,300,75,30); jcancel.setFont(myFont.f1); jcancel.addActionListener(this); this.add(jcancel); //空布局 this.setLayout(null); this.setSize(360,360); //加背景图片 bgimage=new LoginBackImage(); bgimage.setBounds(0, 0, 360, 360); this.add(bgimage); //加闪屏效果 p=new paint(); this.add(p); //取掉边框修饰效果 this.setUndecorated(true); //窗体居中 this.setLocationRelativeTo(null); this.setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==jconfirm) { //todo }else if(e.getSource()==jcancel) { System.exit(0); } } } /* * 登陆截面的背景图片 */ class LoginBackImage extends JPanel { Image bg=null; LoginBackImage() { try { bg=ImageIO.read(new File("Images/login.gif")); } catch (IOException e) { e.printStackTrace(); } } public void paintComponent(Graphics g) { g.drawImage(bg, 0, 0,360,360,this); } }
3、实现闪屏登陆效果
package com.mhl.View; import java.awt.*; import javax.swing.*; import com.mhl.Tools.*; public class CataLog extends JWindow implements Runnable { /** * @param args */ paint p=null; public static void main(String[] args) { CataLog ct=new CataLog(); Thread t=new Thread(ct); t.start(); } public CataLog() { this.setSize(400,240); //加闪屏 p=new paint(); this.add(p); this.setLocationRelativeTo(null); this.setVisible(true); } @Override public void run() { while(true) { try { Thread.sleep(30*500); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } //启动登陆窗口 new UserLogin(); this.dispose(); } } }
4、登陆窗口类中用到的类型
package com.mhl.Tools; import java.awt.*; public class myFont { public static Font f0=new Font("宋体",Font.PLAIN, 18); public static Font f1=new Font("宋体",Font.PLAIN, 16); public static Font f2=new Font("宋体",Font.PLAIN,15); public static Font f3=new Font("宋体",Font.PLAIN,14); public static Font f4=new Font("宋体",Font.PLAIN,13); }
发表评论
-
Java连接sql2005数据库三步曲
2012-12-27 10:48 686one、two、three 导入java包 import ja ... -
主题:Java面试122题 .
2012-12-27 10:17 8522012-06-05 09:17 592人阅读 ... -
Java六大必须理解的问题
2012-12-27 10:17 4812012-05-24 11:39 793人阅读 评论(6) 收 ... -
多线程知识点整理 .
2012-12-27 10:17 550基本概念 多线程程序 ... -
数据连接池的基本实现 .
2012-12-26 13:20 8251、 实现途径: 编写JdbcPool implemen ... -
java 常用三大集合类
2012-11-23 11:07 13753一、Set集合,其主要实现类有HashSet、TreeSet。 ... -
Java笔记9(Java网络编程)
2012-10-16 14:39 703Java基础9 Java基础9 1 文件结构 ... -
Java笔记8(jdbc-odbc、jdbc、JTable使用、Min版学生管理系统)
2012-10-16 14:34 1407Java基础8 Java基础8 1 文件结构 ... -
paint和paintComponent方法的关系
2012-09-18 09:50 912关键词:swing,paint,paintComp ... -
Java笔记7(IO操作、图片拷贝、记事本、测试声音、坦克大战)
2012-08-23 15:05 1019File类的基本用法_Demo12_1.java /* ... -
Java笔记6(多线程、机票售票系统、坦克大战)
2012-08-23 14:39 1580多线程Demo10_1.java /* * 演 ... -
Java笔记5(java绘图原理、事件处理机制、监听器、坦克大战)
2012-08-23 14:30 2820java绘图原理Demo9_1.java /* ... -
java中equals和==的区别
2012-08-17 10:33 17506ava中equals和==的区别 值类型是存储在内存中的堆栈( ... -
Java笔记4(布局管理器、常用组件、qq聊天界面、记事本)
2012-08-13 14:12 3371文件结构 布局管理器Demo8_1.java pa ... -
Java笔记3(泛型、异常、成绩评分程序)
2012-08-09 10:31 1018文件结构 泛型与异常 异常 Class7b / c ... -
Java笔记1(java类、接口、封装、继承、多态、约瑟夫环应用)
2012-08-09 10:26 1034文件结构 Java访问修饰符 com.xiaoming ... -
Java笔记2(数组、排序、查找、集合类、移位)
2012-08-09 10:18 1728文件结构 Class5 / com.t ...
相关推荐
NULL 博文链接:https://yshjava.iteye.com/blog/1326539
Android 实现闪屏页+功能引导页
看着韩顺平老师的视频,自己逐步敲的,经过多次调试终于成功了,向大家分享下,请大家多多支持啊。
这个示例实现闪屏后转到主界面, 2013.10.27
QT 实现闪屏 变色
教你如何实现闪屏教你如何实现闪屏 手机实现如何实现闪屏 实现闪屏 实现闪屏手机
实现闪屏效果
Android中用Handler实现闪屏效果,使用原生SharedPreferences储存类解决用户第二次打开不会引导页的问题
在登录页面开启闪屏效果,可以根据主页面的载入数据的进度在闪屏上显示相应的文字
本文实例为大家分享了Android实现闪屏页效果的具体代码,供大家参考,具体内容如下 1.效果图 2.闪屏页逻辑及布局 2.1 activity_splash.xml <?xml version=1.0 encoding=utf-8?> <FrameLayout xmlns:...
android 移动开应用程序首界面,登录界面,闪屏界面。
主要介绍了Android实现闪屏及注册和登录界面之间的切换效果,实现思路是先分别实现闪屏、注册界面、登录界面的活动,再用Intent将相关的活动连接起来,实现不同活动之间的跳转,对android 实现闪屏和界面切换感兴趣...
闪屏图形特技效果的实现代码.zip
AndroidStudio下的一个SplashActivityDemo(闪屏页面)的实现
每个应用程序都会有闪屏页面的,那么接下来就看看闪屏页面是如何实现的? 效果图: demo框架如下: 1、闪屏的布局如下:其实就是一张背景图 <?xml version=1.0 encoding=utf-8?> <LinearLayout xmlns:...
实现淡出和上移过度闪屏。实现淡出和上移过度闪屏。实现淡出和上移过度闪屏。
主要为大家详细介绍了Android实现闪屏效果,实现“一闪而过”效果进入页面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
android游戏开发中常用的logo闪屏的实现,主要是通过handler实现
本文实例讲述了Android闪屏效果实现方法。分享给大家供大家参考,具体如下: 闪屏,就是SplashScreen,也可以说是启动画面,就是启动的时候,闪(展示)一下,持续数秒后,自动关闭。 android的实现非常简单,使用...