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 714one、two、three 导入java包 import ja ... -
主题:Java面试122题 .
2012-12-27 10:17 8842012-06-05 09:17 592人阅读 ... -
Java六大必须理解的问题
2012-12-27 10:17 5232012-05-24 11:39 793人阅读 评论(6) 收 ... -
多线程知识点整理 .
2012-12-27 10:17 579基本概念 多线程程序 ... -
数据连接池的基本实现 .
2012-12-26 13:20 8541、 实现途径: 编写JdbcPool implemen ... -
java 常用三大集合类
2012-11-23 11:07 13775一、Set集合,其主要实现类有HashSet、TreeSet。 ... -
Java笔记9(Java网络编程)
2012-10-16 14:39 739Java基础9 Java基础9 1 文件结构 ... -
Java笔记8(jdbc-odbc、jdbc、JTable使用、Min版学生管理系统)
2012-10-16 14:34 1444Java基础8 Java基础8 1 文件结构 ... -
paint和paintComponent方法的关系
2012-09-18 09:50 939关键词:swing,paint,paintComp ... -
Java笔记7(IO操作、图片拷贝、记事本、测试声音、坦克大战)
2012-08-23 15:05 1049File类的基本用法_Demo12_1.java /* ... -
Java笔记6(多线程、机票售票系统、坦克大战)
2012-08-23 14:39 1619多线程Demo10_1.java /* * 演 ... -
Java笔记5(java绘图原理、事件处理机制、监听器、坦克大战)
2012-08-23 14:30 2855java绘图原理Demo9_1.java /* ... -
java中equals和==的区别
2012-08-17 10:33 17533ava中equals和==的区别 值类型是存储在内存中的堆栈( ... -
Java笔记4(布局管理器、常用组件、qq聊天界面、记事本)
2012-08-13 14:12 3397文件结构 布局管理器Demo8_1.java pa ... -
Java笔记3(泛型、异常、成绩评分程序)
2012-08-09 10:31 1055文件结构 泛型与异常 异常 Class7b / c ... -
Java笔记1(java类、接口、封装、继承、多态、约瑟夫环应用)
2012-08-09 10:26 1065文件结构 Java访问修饰符 com.xiaoming ... -
Java笔记2(数组、排序、查找、集合类、移位)
2012-08-09 10:18 1767文件结构 Class5 / com.t ...
相关推荐
【Eclipse 闪屏】是一种启动时展示的短暂动画效果,...通过精心设计和实现,你可以为你的应用打造一个既美观又能提升用户体验的闪屏效果。在实际开发中,可以根据具体平台和开发工具的特点进行调整,以达到最佳效果。
在编程实现闪屏代码时,首先我们需要了解基本的UI框架,比如Java中的Swing或Android中的XML布局。在这个案例中,可能会用到Java Swing来创建一个简单的窗口,并添加相应的组件。Swing提供了一系列的JComponent类,如...
在Java程序中添加一个闪屏(Splash Screen)是提高用户...通过合理的编程和适当的动画效果,你可以为用户提供一个优雅且专业的启动体验。在打包成JAR时,确保正确处理资源路径,以确保闪屏功能在目标环境中正常工作。
本资源包含: 27彩色圆盘 28绘制2D图形 29变化的圆形 30动态画布 31有背景的表格 32拖拽和移动鼠标 33按下和松开鼠标 ...42快闪屏窗口 43文件对话框 44时钟 45三次贝塞尔曲线 46滚动的圆盘 47超链接事件
【满汉楼餐饮系统部分功能实现】是一个基于Java编程语言的项目,主要涵盖了闪屏、登录界面、主界面以及人事管理系统等关键模块。这个系统旨在模拟真实的餐饮业管理流程,帮助用户进行日常运营,提高效率。 1. **...
7. **网络编程**:Java的Socket编程允许创建客户端和服务端应用程序,实现数据的网络传输。书中可能有TCP和UDP通信的实例。 8. **JavaFX和Swing**:对于图形用户界面(GUI)开发,Java提供了JavaFX和Swing库。源码...
1. **图形用户界面设计**:使用编程语言(如Python的Tkinter、Java的Swing或Android的XML布局)来创建用户友好的界面,实现抖动闪屏的效果。 2. **事件驱动编程**:理解和实现事件监听器,使用户界面能够响应用户的...
在实际编程中,不同的编程语言和框架提供了不同的实现方式。例如,在Java中,我们可以使用`BufferedImage`作为后台缓冲区,并通过`Graphics`对象在其中绘图;而在C#的WinForms或WPF中,我们可以利用`Control....
详细设计部分,如Paint类,用于创建闪屏效果,实现线程每隔半秒在面板上绘制文字。 综上所述,这个Java信息管理课程设计项目是一个全面的系统开发实践,涵盖了从需求分析、设计、编码到测试的完整软件开发流程,...
关于Java基础知识的讨论,包括接口与内部类、使用Swing的GUI编程、异常处理.泛型.集合和并发。读者可以查阅《Java核心技术,卷I:基础知识(原书第8版)》(ISBN:978-7-111-23950-5)。 2006、2007年度CSDN、...
总结起来,这个Java五子棋游戏项目涵盖了从基本的Java编程到高级的图形用户界面设计、游戏逻辑实现和资源管理等多个方面,为学习者提供了一个综合性的实践案例,有助于提升其在Java开发领域的技能。
实例029 验证登录信息的合法性 39 实例030 为新员工分配部门 40 实例031 用Switch语句根据消费金额计算折扣 41 实例032 判断用户输入月份的季节 42 2.4 循环控制 43 实例033 使用while与自增运算符循环遍历 数组 43 ...
第四章 数据库编程 4.1 JDBC的设计 4.1.1 JDBC驱动程序类型 4.1.2 JDBC的典型用法 4.2 结构化查询语言 4.3 JDBC配置 4.3.1 数据库URL 4.3.2 驱动程序JAR文件 4.3.3 启动数据库 4.3.4 注册驱动器类 4.3.5 连接到...