专栏首页Java帮帮-微信公众号-技术文章全总结Java基础-25(03)图形用户界面编程GUI

Java基础-25(03)图形用户界面编程GUI

B:登录注册

package cn.itcast.util;(1)
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JFrame;
/**
 * 专门做界面效果的类
 *
 * @author Administrator
 */
public class UiUtil {
    private UiUtil() {
    }
    //修改窗体的图标
    public static void setFrameImage(JFrame jf) {
        //获取工具类对象
        //public static Toolkit getDefaultToolkit():获取默认工具包。 
        Toolkit tk = Toolkit.getDefaultToolkit();
        //根据路径获取图片
        Image i = tk.getImage("src\\cn\\itcast\\resource\\user.jpg");
        //给窗体设置图片
        jf.setIconImage(i);
    }
        public static void setFrameImage(JFrame jf,String imageName) {
        //获取工具类对象
        //public static Toolkit getDefaultToolkit():获取默认工具包。 
        Toolkit tk = Toolkit.getDefaultToolkit();
        //根据路径获取图片
        Image i = tk.getImage("src\\cn\\itcast\\resource\\"+imageName);
        //给窗体设置图片
        jf.setIconImage(i);
    }
    //设置窗体居中
    public static void setFrameCenter(JFrame jf) {
        /*
         思路:
         A:获取屏幕的宽和高
         B:获取窗体的宽和高
         C:(用屏幕的宽-窗体的宽)/2,(用屏幕的高-窗体的高)/2作为窗体的新坐标。
         */
        //获取工具对象
        Toolkit tk = Toolkit.getDefaultToolkit();
        //获取屏幕的宽和高
        Dimension d = tk.getScreenSize();
        double srceenWidth = d.getWidth();
        double srceenHeigth = d.getHeight();
        //获取窗体的宽和高
        int frameWidth = jf.getWidth();
        int frameHeight = jf.getHeight();
        //获取新的宽和高
        int width = (int) (srceenWidth - frameWidth) / 2;
        int height = (int) (srceenHeigth - frameHeight) / 2;
        //设置窗体坐标
        jf.setLocation(width, height);
    }
}
package cn.itcast.pojo;(2)
public class User {
    private String username;
    private String password;
    public User(){}
    /**
     * @return the username
     */
    public String getUsername() {
        return username;
    }
    /**
     * @param username the username to set
     */
    public void setUsername(String username) {
        this.username = username;
    }
    /**
     * @return the password
     */
    public String getPassword() {
        return password;
    }
    /**
     * @param password the password to set
     */
    public void setPassword(String password) {
        this.password = password;
    }
}
package cn.itcast.dao;(3)
import cn.itcast.pojo.User;
/**
 *
 * @author Administrator
 */
public interface UserDao {
    /**
     * 这是用户登录功能
     *
     * @param username 用户名
     * @param password 密码
     * @return 登录是否成功
     */
    public abstract boolean login(String username, String password);
    /**
     * 这是用户注册功能
     *
     * @param user 被注册的用户信息
     */
    public abstract void regist(User user);
}
package cn.itcast.dao.impl;(4)
import cn.itcast.dao.UserDao;
import cn.itcast.pojo.User;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/**
 *
 * @author Administrator
 */
public class UserDaoImpl implements UserDao {
    //定义文件
    private static File file = new File("user.txt");
    //类加载的时候就把文件创建
    static {
        try {
            file.createNewFile();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
    @Override
    public boolean login(String username, String password) {
        boolean flag = false;
        BufferedReader br = null;
        try {
            br = new BufferedReader(new FileReader(file));
            String line = null;
            while ((line = br.readLine()) != null) {
                String[] datas = line.split("=");
                if (datas[0].equals(username) && datas[1].equals(password)) {
                    flag = true;
                    break;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                br.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
        return flag;
    }
    @Override
    public void regist(User user) {
        BufferedWriter bw = null;
        try {
            bw = new BufferedWriter(new FileWriter(file, true));
            bw.write(user.getUsername() + "=" + user.getPassword());
            bw.newLine();
            bw.flush();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                bw.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
}

本文分享自微信公众号 - Java帮帮(javahelp)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-12-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • java读取xml文件

    xml文件:   Xml代码   <?xml version=”1.0” encoding=”GB2312”?>   <RESULT>   <VALUE>...

    Java帮帮
  • Java基础-11总结Eclipse使用,API,Object类

    1:Eclipse的概述使用(掌握) 1:Eclipse的安装 2:用Eclipse写一个HelloWorld案例,最终在控制台输出你的名字 A:创建项目 ...

    Java帮帮
  • 高级教程-springData-JPA第一天【悟空教程】

    ORM(Object-Relational Mapping) 表示对象关系映射。在面向对象的软件开发中,通过 ORM,就可以把对象映射到关系型数据库中。只要有一...

    Java帮帮
  • SpringMVC接受请求参数

    在RequestMapping中配置参数名,同时与方法的参数名相同,需要在前面加上@PathVariable注解

    黑白格
  • 基于Netty实现Redis协议的编码解码器

    上面是Netty的服务器端基本消息处理结构,为了便于初学者理解,它和真实的结构有稍许出入。Netty是基于NIO的消息处理框架,用来高效处理网络IO。处理网络消...

    老钱
  • 审阅“史上”最烂的代码

    Facebook 上有一个名为“Il Programmatore di Merda”(翻译为“ The Shitty Programmer”,中文含义为“糟糕的...

    深度学习与Python
  • 图解你身边的 SOLID 原则 - JS 实例版

    过了两天发现有人为那篇文章补充了 JavaScript 例子,看了下例子还不错,这次就顺便也翻译一下哈,部分例子有删改~

    savokiss
  • JS:js操作Cookie实现记住密码功能

    今天主管让我给工单系统填个小功能,就是在上面加一个记住密码。提示了我一句用到cookie就走了,我今天是研究了一天cookie啊,下面有三段操控cookie封装...

    yuezhongbao
  • MapReduce之MapJoin案例

    思考:在Reduce 端处理过多的表,非常容易产生数据倾斜。怎么办? 在Map端缓存多张表,提前处理业务逻辑,这样增加Map 端业务,减少Reduce 端数据...

    爱学习的孙小白
  • 手写 ButterKnife BindView

    先建三个module,分别为Butterknife ButterKnife-Annotions ButterKnife-compiler,其中butterk...

    曾大稳

扫码关注云+社区

领取腾讯云代金券