java闪屏登陆,java项目满汉楼管理系统(1)--闪屏和登录

本项目适合学习完java基础和数据库基础后来练手的项目,博主也是才学完就跟着某老师视频做起来的项目,开此帖记录下.

网上搜集的素材和文档,源码可以无视,里面写的很不全,最终我会补全这系列的.下载这个主要是了解整个项目

csdn下载地址

首先整个项目使用mode2模式开发,整体结构分为4个部分,看下图

0818b9ca8b590ca3270a3433284dd417.png

–DB是数据库,SQLHelper是对数据库操作层,Model则是模型层,比如人事操作模型,菜谱操作模型等,最上面View则是显示出来的界面,Util则封装了项目开发中所需要的一些工具,大多都是静态方法.

有了模型,下面开始做项目了,首先建好4个包,相当于四个模型,并在View中建立第一屏Index.java,闪屏登录

0818b9ca8b590ca3270a3433284dd417.png

要做的第一屏

0818b9ca8b590ca3270a3433284dd417.png

分析一下还是很简单的,一个没有外围窗口的面板,上面是一个Gif的图片,下面是一个进度条,并且进度条走完的时候其启动到登录界面,分析一下,先建立好变量和函数

JFrame和JWindow不同的就是JFrame有外围框框,所以这里舍弃JFrame,因为要进度条自己走动,所以实现Runnable接口

public class Index extends JWindow implements Runnable{

private JLabel jll;//显示图片

private JProgressBar jpb;//显示进度条

public static void main(String[] args) {

Index index = new Index();

}

接下来,给JLable添加图片,给进度条初始化

/** * 构造函数初始化界面 */

public Index() {

jll = new JLabel(new ImageIcon("image//index//index.gif"));

jpb = new JProgressBar();

setSize(400, 240);//JWindow设置大小

setLocation(ViewUtil.getWindowWidth()/2-200, ViewUtil.getWindowHeight()/2-120);

jpb.setStringPainted(true);//设置进度条显示字符串

jpb.setMaximum(100);//设置进度条显示最大值

jpb.setBackground(Color.blue);//设置进度条背景

this.add(jll,BorderLayout.CENTER);

this.add(jpb, BorderLayout.SOUTH);

setVisible(true);

}

接下来设置进度条自动走动的方法,也就是重写Run方法,不过要注意当进度条满的时候需要启动新的界面,我们就再创建一个Login.java在View包中

@Override

public void run() {

int num = 0;

jpb.setValue(num);

while(true){

if (num == 100) {

break;

}

try {

Thread.sleep(1000);

num +=10;

jpb.setValue(num);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

//启动新的界面

new Login();

this.dispose();//当前窗口消失

到此闪屏界面结束,下面开始登陆界面

0818b9ca8b590ca3270a3433284dd417.png

整个界面就是一张图片,然后图片上添加两个Jlabel和两个输入窗口,两个JButton,而整个就是对话框形式,所以定义为Jdialog

带有图片的JPanel需要重写Paint方法,并且后面经常用到这个,所以我们再Util包中单写一个带图片的JPanel

import java.awt.Graphics;

import java.awt.Image;

import javax.swing.JPanel;

public class JpanelUtil extends JPanel{

Image im;

public JpanelUtil(Image im) {

this.im = im;

this.setSize(ViewUtil.getWindowWidth(), ViewUtil.getWindowHeight());

}

/** * 这个方法是重新画jpanel中的控件用的 */

@Override

protected void paintComponent(Graphics g) {

super.paintComponent(g);

g.drawImage(im, 0, 0,this.getWidth(),this.getHeight(), this);

}

}

接下来写登陆界面,先创建好需要的变量,写主函数是为了测试方便

private JTextField textUser;

private JPasswordField Txtpassword;

private JButton btnOK;

private JButton btnCancel;

private JLabel labUser;

private JLabel labPassword;

private Image im;

/** * Launch the application. */

public static void main(String[] args) {

try {

Login dialog = new Login();

dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

} catch (Exception e) {

e.printStackTrace();

}

}

然后初始化

/** * Create the dialog. */

public Login() {

labUser = new JLabel("请输入用户名");

labPassword = new JLabel("请输入密码");

labUser.setBounds(60, 210, 80, 30);

labUser.setFont(FontUtil.f3);

getContentPane().add(labUser);

labPassword.setBounds(60,250,80,30);

labPassword.setFont(FontUtil.f3);

getContentPane().add(labPassword);

textUser = new JTextField();

textUser.setBounds(150, 210, 130, 30);

textUser.setBorder(BorderFactory.createLoweredBevelBorder());

getContentPane().add(textUser);

Txtpassword = new JPasswordField();

Txtpassword.setBounds(150, 250, 130, 30);

Txtpassword.setBorder(BorderFactory.createLoweredBevelBorder());

getContentPane().add(Txtpassword);

btnOK = new JButton("确认");

btnOK.setBounds(80, 290, 70, 30);

btnOK.setFont(FontUtil.f3);

getContentPane().add(btnOK);

btnCancel = new JButton("取消");

btnCancel.setBounds(200, 290, 70, 30);

btnCancel.setFont(FontUtil.f3);

add(btnCancel);

setBounds(ViewUtil.getWindowWidth()/2-180, ViewUtil.getWindowHeight()/2-180, 359, 359);

try {

im = ImageIO.read(new File("image//index//login.gif"));

} catch (IOException e) {

e.printStackTrace();

}

add(new JpanelUtil(im));

//不使用上下框

setUndecorated(true);

setVisible(true);

}

到此登录界面设计完毕,下一篇添加点击事件,从而实现简单的登录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值