2016.9.22小程序

制作日志
实现步骤:
a、制作一个日志类(LogObj),该类提供一个记录日志的方法
public void writeLog(String info){}
该方法要求记录用户登陆信息。
b、创建目录log,用于存放日志文件。创建文件流以追加方式写入文件,以当前日期的年月日做文件名。文件名格式为:2011-12-05.txt
c、创建一个登陆类,书写GUI界面。利用事件要求用户输入用户名和密码,如果登陆成功则写入日志。“张三在 15:32:30 登陆系统。”。如果登陆失败,则写入“非法用户张三在 15:32:30 企图登陆系统”

1、日志类(LogObj)

 1 import java.io.File;
 2 import java.io.FileWriter;
 3 import java.io.IOException;
 4 import java.io.Writer;
 5 import java.text.SimpleDateFormat;
 6 import java.util.Date;
 7
 8 public class LogObj {
 9     private static SimpleDateFormat dateNow = new SimpleDateFormat("yyyy-MM-dd");
10     public static void writeLog(String info){
11         Writer w = null ;
12         String dateTxt = dateNow.format(new Date ());
13
14          try {
15               File f = new File("log");
16               if (f.exists() == false){//判断目录是否存在,如果不存在则新建目录
17                   f.mkdirs();
18               }
19             w = new FileWriter("log/"+dateTxt+".txt",true);
20             w.write(info+"\n");
21         } catch (Exception e) {
22             e.printStackTrace();
23         }finally {
24             try {
25                 w.close();
26             } catch (IOException e) {
27                 e.printStackTrace();
28             }
29         }
30     }
31 }

2、登录窗体

 1 import java.awt.event.ActionEvent;
 2 import java.awt.event.ActionListener;
 3 import java.text.SimpleDateFormat;
 4 import java.util.Date;
 5
 6 import javax.swing.JFrame;
 7 import javax.swing.JOptionPane;
 8
 9 import com.lovo.netCRM.component.LovoButton;
10 import com.lovo.netCRM.component.LovoTxt;
11
12 public class LoginFrame extends JFrame{
13     private LovoTxt userName = new LovoTxt("用户名", 100, 100, this);
14     private LovoTxt userPwd = new LovoTxt("密码", 100, 150, this);
15     private SimpleDateFormat time = new SimpleDateFormat("HH:mm:ss");
16     public LoginFrame (){
17         this.setLayout(null);
18         LovoButton loginButton = new LovoButton("登录", 200, 220, this);
19         loginButton.addActionListener(new ActionListener() {
20             @Override
21             public void actionPerformed(ActionEvent arg0) {
22                 String timeTxt = time.format(new Date ());
23                 if ("张三".equals(userName.getText()) && "111".equals(userPwd.getText())){
24                     JOptionPane.showMessageDialog(null, "登录成功");
25                     LogObj.writeLog(userName.getText()+"在   "+timeTxt+"登录系统");
26                 }else{
27                     JOptionPane.showMessageDialog(null, "登录失败");
28                     LogObj.writeLog(userName.getText()+"在   "+timeTxt+"企图登录系统");
29                 }
30             }
31         });
32
33         this.setSize(500,400);
34         this.setVisible(true);
35         this.setDefaultCloseOperation(3);
36         this.setLocationRelativeTo(null);
37     }
38
39     public static void main(String[] args) {
40         new LoginFrame();
41     }
42
43 }
时间: 2024-12-17 03:55:11

2016.9.22小程序的相关文章

2016.9.26小程序---数据库小练习1

1 -- createbbc, 1, 50 2 DROP TABLE bbc; 3 4 CREATE INDEX bbc_region ON bbc(region); 5 6 7 -- tabbbc, 1, 50 8 INSERT INTO bbc VALUES ('Afghanistan','South Asia',652225,26000000,NULL); 9 INSERT INTO bbc VALUES ('Albania','Europe',28728,3200000,66560000

2016.9.23小程序---数据库

学生表:t_student编号s_id 整形 主键 自增姓名:s_name 字符串 不允许重复 性别:s_sex 字符串 默认值 男 年龄:s_age 整形 班级: s_class 字符串 建表 并添加数据,数据不能少于10条,并完成以下题目 1.把刘基的名字修改为刘伯温2.唐伯虎年龄20,性别男,班级为T130,添加到表中 3.查询出所有姓名包括伯的所有的人员的信息4,查询年龄在10-20之间的所有人员的信息5,查询前5条年龄在10-20之间的所有人员的信息6,将年龄在10-20之间的所有人员

2016.9.20小程序--1

在员工管理的GUI练习中加入数据验证.也就是在添加对象进数组之前,先作数据合法性的验证,数据合法再作添加. 姓名:2个以上的字母或汉字 性别:必须是男或女 年龄:必须为数字 电话:13.15.18开始的11位数字 或者  028-99823345 1.员工类 1 public class Staff { 2 private String name ; 3 private int age ; 4 private String sex ; 5 private String tel ; 6 7 8 9

2016.9.19小程序

制作一个界面完成员工信息的添加.显示和查找 实现步骤: 1.制作界面 2.建立员工类,包含姓名.年龄.性别.电话4个私有属性,加上get和set方法作为访问器和修改器 3.在事件类中加入一个员工数组的属性,用于保存员工信息,加入一个number的属性,用于记录员工的人数. 4.当单击添加时,从四个文本框中得到信息,并封装成员工对象,然后将员工对象加入员工数组,人数加1.如果超出数组的长度,添加按钮变灰,阻止用户继续添加. 5.当单击显示时,弹出对话框,显示现有员工的信息. 6.在姓名文本框中输入

2016.9.27小程序---数据库练习1

1 -- createbbc, 1, 50 2 DROP TABLE bbc; 3 4 5 CREATE INDEX bbc_region ON bbc(region); 6 7 GO 8 -- tabbbc, 1, 50 9 INSERT INTO bbc VALUES ('Afghanistan','South Asia',652225,26000000,NULL); 10 INSERT INTO bbc VALUES ('Albania','Europe',28728,3200000,66

2016.9.26小程序---数据库练习2

1 -- createnobel, 1, 50 2 DROP TABLE nobel; 3 CREATE TABLE nobel( 4 yr INT -- 年份 5 ,SUBJECT VARCHAR(15) -- 奖项 6 ,winner VARCHAR(50) -- 获奖者 7 )DEFAULT CHARSET=utf8; 8 9 GO 10 -- tabnobel, 1, 50 11 INSERT INTO nobel VALUES (1901,'Chemistry','Jacobus H.

微信小程序疑问解答

最近总结一篇微信小程序解答,作为小程序填坑人深有体会这里的变化,小程序刚发布消息的时候我就说了一个观点,只要小程序提供的组件或API丰富,稳定,兼容性好,才能实现小程序快速开发的理念,先如今还有很多组件的兼容不理想,有一些还在的优化中,因基于小程序这个平台开发限制很大,只能坐等中...如果想用第三方库来实现,小程序明文规定不支持第三方库的做法,这样做最终小程序审核环节百分百的不通过. 1.scroll-view 在 iOS 上存在 bug 在使用这个组件开发页面的时候,因自带滚动效果,Y 轴滑动

微信小程序学习指南

作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 微信小程序正式公测, 张小龙全面阐述小程序,定档1月9日上线(附90分钟演讲全文) ... 前言:新人第一坑,跳坑指南:修改后,必须保存:ctrl+S: 1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教

Python Flask构建微信小程序订餐系统

call--->q-2304636824-q 第1章 <Python Flask构建微信小程序订餐系统>课程简介 本章内容会带领大家通览整体架构,功能模块,及学习建议.让大家在一个清晰的开发思路下,进行后续的学习.同时领着大家登陆https://food.54php.cn(使用微信扫码二维码体验下哦横须)一起来演示一下项目.本次课程是严格按照商业系统进行架构开发的,从PC管理员端到小程序会员端,从项目搭建到部署上线,通俗易懂.... 1-1 导学--Python Flask 构建微信小程