• DVD租赁系统


    跟着网上的视频学的,还有个别地方写的不够好,主要学习dao模式,这里其中的BaseUtil类不错

    DVD.java

     1 package com.dvd.entiy;
     2 
     3 public class DVD {
     4     private int id;
     5     private String dname;
     6     private int dcount;
     7     private int status;
     8 
     9     public DVD() {
    10 
    11     }
    12 
    13     public DVD(String dname, int dcount, int status) {
    14         super();
    15         this.dname = dname;
    16         this.dcount = dcount;
    17         this.status = status;
    18     }
    19 
    20     public DVD(int id, String dname, int dcount, int status) {
    21         super();
    22         this.id = id;
    23         this.dname = dname;
    24         this.dcount = dcount;
    25         this.status = status;
    26     }
    27 
    28     public int getId() {
    29         return id;
    30     }
    31 
    32     public void setId(int id) {
    33         this.id = id;
    34     }
    35 
    36     public String getDname() {
    37         return dname;
    38     }
    39 
    40     public void setDname(String duname) {
    41         this.dname = dname;
    42     }
    43 
    44     public int getDcount() {
    45         return dcount;
    46     }
    47 
    48     public void setDcount(int dcount) {
    49         this.dcount = dcount;
    50     }
    51 
    52     public int getStatus() {
    53         return status;
    54     }
    55 
    56     public void setStatus(int status) {
    57         this.status = status;
    58     }
    59 
    60 }

     User.java

     1 package com.dvd.entiy;
     2 
     3 public class User {
     4     private int id;
     5     private String uname;
     6     private String upass;
     7     private int type;
     8 
     9     public User() {
    10 
    11     }
    12 
    13     public User(String uname, String upass, int type) {
    14         super();
    15         this.uname = uname;
    16         this.upass = upass;
    17         this.type = type;
    18     }
    19 
    20     public User(int id, String uname, String upass, int type) {
    21         super();
    22         this.id = id;
    23         this.uname = uname;
    24         this.upass = upass;
    25         this.type = type;
    26     }
    27 
    28     public int getId() {
    29         return id;
    30     }
    31 
    32     public void setId(int id) {
    33         this.id = id;
    34     }
    35 
    36     public String getUname() {
    37         return uname;
    38     }
    39 
    40     public void setUname(String uname) {
    41         this.uname = uname;
    42     }
    43 
    44     public String getUpass() {
    45         return upass;
    46     }
    47 
    48     public void setUpass(String upass) {
    49         this.upass = upass;
    50     }
    51 
    52     public int getType() {
    53         return type;
    54     }
    55 
    56     public void setType(int type) {
    57         this.type = type;
    58     }
    59 
    60 }

    Record.java

     1 package com.dvd.entiy;
     2 
     3 public class Record {
     4     private int id;
     5     private int uid;
     6     private int did;
     7     private String lendTime;
     8     private String returnTime;
     9 
    10     public Record() {
    11 
    12     }
    13 
    14     public Record(int uid, int did, String lendTime, String returnTime) {
    15         super();
    16         this.uid = uid;
    17         this.did = did;
    18         this.lendTime = lendTime;
    19         this.returnTime = returnTime;
    20     }
    21 
    22     public Record(int id, int uid, int did, String lendTime, String returnTime) {
    23         super();
    24         this.id = id;
    25         this.uid = uid;
    26         this.did = did;
    27         this.lendTime = lendTime;
    28         this.returnTime = returnTime;
    29     }
    30 
    31     public int getId() {
    32         return id;
    33     }
    34 
    35     public void setId(int id) {
    36         this.id = id;
    37     }
    38 
    39     public int getUid() {
    40         return uid;
    41     }
    42 
    43     public void setUid(int uid) {
    44         this.uid = uid;
    45     }
    46 
    47     public int getDid() {
    48         return did;
    49     }
    50 
    51     public void setDid(int did) {
    52         this.did = did;
    53     }
    54 
    55     public String getLendTime() {
    56         return lendTime;
    57     }
    58 
    59     public void setLendTime(String lendTime) {
    60         this.lendTime = lendTime;
    61     }
    62 
    63     public String getReturnTime() {
    64         return returnTime;
    65     }
    66 
    67     public void setReturnTime(String returnTime) {
    68         this.returnTime = returnTime;
    69     }
    70 
    71 }

    Record2.java

     1 package com.dvd.entiy;
     2 
     3 public class Record2 {
     4     private int id;// 记录id
     5     private int did;// 影碟id
     6     private String uname;// 用户名
     7     private String dname;// 影碟名字
     8     private String lendTime;// 借出时间
     9     private String returnTime;// 归还时间
    10 
    11     public Record2() {
    12 
    13     }
    14 
    15     public Record2(String uname, String dname, String lendTime, String returnTime) {
    16         super();
    17         this.uname = uname;
    18         this.dname = dname;
    19         this.lendTime = lendTime;
    20         this.returnTime = returnTime;
    21     }
    22 
    23     public Record2(int id, String uname, String dname, String lendTime, String returnTime) {
    24         super();
    25         this.id = id;
    26         this.uname = uname;
    27         this.dname = dname;
    28         this.lendTime = lendTime;
    29         this.returnTime = returnTime;
    30     }
    31 
    32     public int getId() {
    33         return id;
    34     }
    35 
    36     public void setId(int id) {
    37         this.id = id;
    38     }
    39 
    40     public int getDid() {
    41         return did;
    42     }
    43 
    44     public void setDid(int did) {
    45         this.did = did;
    46     }
    47 
    48     public String getUname() {
    49         return uname;
    50     }
    51 
    52     public void setUname(String uname) {
    53         this.uname = uname;
    54     }
    55 
    56     public String getDname() {
    57         return dname;
    58     }
    59 
    60     public void setDname(String dname) {
    61         this.dname = dname;
    62     }
    63 
    64     public String getLendTime() {
    65         return lendTime;
    66     }
    67 
    68     public void setLendTime(String lendTime) {
    69         this.lendTime = lendTime;
    70     }
    71 
    72     public String getReturnTime() {
    73         return returnTime;
    74     }
    75 
    76     public void setReturnTime(String returnTime) {
    77         this.returnTime = returnTime;
    78     }
    79 
    80 }

     DVDDao.java

     1 package com.dvd.dao;
     2 
     3 import java.util.List;
     4 
     5 import com.dvd.entiy.DVD;
     6 
     7 public interface DVDDao {
     8     public boolean saveDVD(DVD dvd);// 添加DVD
     9 
    10     public boolean updateDVD(DVD dvd);// 更新DVD
    11 
    12     public boolean delDVD(int did);// 删除指定的DVD
    13 
    14     public List<DVD> queryDVDs();// 查询所有的DVD
    15 
    16     public List<DVD> queryDVDByName(String name);// 查找指定名字的DVD
    17 
    18     public List<DVD> querySortByLimit(int index, int number);// 查找指定起始位,指定个数的DVD
    19 
    20     public DVD queryDVDById(int did);// 根据dvd编号来查询DVD
    21 
    22     public List<DVD> queryDVDByStatus(int status);// 根据状态查询 DVD
    23 
    24 }

     RecordDao.java

     1 package com.dvd.dao;
     2 
     3 import java.util.List;
     4 
     5 import com.dvd.entiy.Record;
     6 import com.dvd.entiy.Record2;
     7 
     8 public interface RecordDao {
     9     public Record queryRecordById(int rid);// 查看指定id的DVD借还记录
    10 
    11     public boolean saveRecord(Record record);// 保存record记录
    12 
    13     public boolean updateRecord(Record record);// 更新Record记录
    14 
    15     public List<Record2> queryAllRecord();// 查询所有的DVD借还记录
    16 
    17     public List<Record2> queryRecordByUname(String uname);// 查看指定用户的dvd借还记录
    18 
    19     public List<Record2> queryRecordByDname(String dname);// 查看指定dvd的借还记录
    20 
    21     public List<Record2> queryUserRecordByReturnTime(boolean flag, String uname);// 查看用户归还
    22                                                                                     // 记录(已归还
    23                                                                                     // ,未归还)
    24 }

     UserDao.java

     1 package com.dvd.dao;
     2 
     3 import com.dvd.entiy.User;
     4 
     5 public interface UserDao {
     6     public boolean saveUser(User user);// 添加用户
     7 
     8     public boolean delUser(int id);// 删除用户
     9 
    10     public boolean updateUser(User user);// 更新用户
    11 
    12     public User queryUser(User user);// 查询用户
    13 }

     

    BaseDao.java

      1 package com.dvd.dao.impl;
      2 
      3 import java.lang.reflect.Field;
      4 import java.sql.Connection;
      5 import java.sql.DriverManager;
      6 import java.sql.PreparedStatement;
      7 import java.sql.ResultSet;
      8 import java.sql.ResultSetMetaData;
      9 import java.sql.SQLException;
     10 import java.util.ArrayList;
     11 import java.util.List;
     12 
     13 public class BaseDao {
     14     private static final String DRIVER = "com.mysql.jdbc.Driver";
     15     private static final String URL = "jdbc:mysql://localhost:3306/dvddb";
     16 
     17     /**
     18      * 与数据库建立连接
     19      * 
     20      * @return 数据库连接对象
     21      */
     22     public Connection getConn() {
     23         Connection conn = null;
     24         try {
     25             Class.forName(DRIVER);
     26         } catch (ClassNotFoundException e) {
     27             // TODO 自动生成的 catch 块
     28             e.printStackTrace();
     29         }
     30         try {
     31             conn = DriverManager.getConnection(URL, "root", "123456");
     32         } catch (SQLException e) {
     33             // TODO 自动生成的 catch 块
     34             e.printStackTrace();
     35         }
     36         return conn;
     37     }
     38 
     39     /**
     40      * 释放相应的资源
     41      * 
     42      * @param rs
     43      * @param pstmt
     44      * @param conn
     45      */
     46     public void closeAll(ResultSet rs, PreparedStatement pstmt, Connection conn) {
     47         try {
     48             if (rs != null) {
     49                 rs.close();
     50             }
     51             if (pstmt != null) {
     52                 pstmt.close();
     53             }
     54             if (conn != null) {
     55                 conn.close();
     56             }
     57         } catch (SQLException e) {
     58             // TODO 自动生成的 catch 块
     59             e.printStackTrace();
     60         }
     61     }
     62 
     63     /**
     64      * 此方法可以完成增删改查
     65      * 
     66      * @param sql
     67      * @param params
     68      * @return
     69      */
     70     public boolean operUpdate(String sql, List<Object> params) {
     71         int res = 0;// 影响的行数
     72         Connection conn = null;
     73         PreparedStatement pstmt = null;
     74         ResultSet rs = null;
     75         try {
     76             conn = getConn();
     77             pstmt = conn.prepareStatement(sql);// 装在sql语句
     78             if (params != null) {
     79                 // 假如有?在执行之前把?点位符替换掉
     80                 for (int i = 0; i < params.size(); i++) {
     81                     pstmt.setObject(i + 1, params.get(i));
     82                 }
     83             }
     84             res = pstmt.executeUpdate();
     85         } catch (SQLException e) {
     86             // TODO 自动生成的 catch 块
     87             e.printStackTrace();
     88         } finally {
     89             closeAll(rs, pstmt, conn);
     90         }
     91         return res > 0 ? true : false;
     92     }
     93 
     94     /**
     95      * 使用泛型方法和反射机制进行封装
     96      * 
     97      * @param sql
     98      * @param params
     99      * @param cls
    100      * @return
    101      * @throws IllegalAccessException
    102      * @throws InstantiationException
    103      * @throws SecurityException
    104      * @throws NoSuchFieldException
    105      */
    106 
    107     public <T> List<T> operQuery(String sql, List<Object> params, Class<T> cls)
    108             throws InstantiationException, IllegalAccessException, NoSuchFieldException, SecurityException {
    109         Connection conn = null;
    110         PreparedStatement pstmt = null;
    111         ResultSet rs = null;
    112         List<T> data = new ArrayList<T>();
    113         try {
    114             conn = getConn();
    115             pstmt = conn.prepareStatement(sql);// 装在sql语句
    116             if (params != null) {
    117                 // 假如有?在执行之前把?点位符替换掉
    118                 for (int i = 0; i < params.size(); i++) {
    119                     pstmt.setObject(i + 1, params.get(i));
    120                 }
    121             }
    122             rs = pstmt.executeQuery();
    123             // 把查询出来的记录封装成对应 的实体类对象
    124             ResultSetMetaData rsd = rs.getMetaData();// 得到记录集元数据对象
    125             // 通过此对象可以得到表的结构 ,列名,列的个数 ,列的数据类型
    126             while (rs.next()) {
    127                 T m = cls.newInstance();
    128                 for (int i = 0; i < rsd.getColumnCount(); i++) {
    129                     String col_name = rsd.getColumnName(i + 1);// 获得列名
    130                     Object value = rs.getObject(col_name);// 获得对应的值
    131                     Field field = cls.getDeclaredField(col_name);
    132                     field.setAccessible(true);// 给私有属性设置可访问权
    133                     field.set(m, value);// 给对象私有属性赋值
    134 
    135                 }
    136                 data.add(m);
    137             }
    138         } catch (SQLException e) {
    139             // TODO 自动生成的 catch 块
    140             e.printStackTrace();
    141         } finally {
    142             closeAll(rs, pstmt, conn);
    143         }
    144         return data;
    145     }
    146 }

     DVDDaoImpl.java

      1 package com.dvd.dao.impl;
      2 
      3 import java.util.ArrayList;
      4 import java.util.List;
      5 
      6 import com.dvd.dao.DVDDao;
      7 import com.dvd.entiy.DVD;
      8 
      9 public class DVDDaoImpl extends BaseDao implements DVDDao {
     10 
     11     @Override
     12     public boolean saveDVD(DVD dvd) {
     13         String sql = "insert into dvds(dname,dcount,status) values(?,?,?)";
     14         List<Object> params = new ArrayList<Object>();
     15         params.add(dvd.getDname());
     16         params.add(dvd.getDcount());
     17         params.add(dvd.getStatus());
     18         return this.operUpdate(sql, params);
     19 
     20     }
     21 
     22     @Override
     23     public boolean updateDVD(DVD dvd) {
     24         String sql = "update dvds set dname=?,dcount=?,status=? where id=?";
     25         List<Object> params = new ArrayList<Object>();
     26         params.add(dvd.getDname());
     27         params.add(dvd.getDcount());
     28         params.add(dvd.getStatus());
     29         params.add(dvd.getId());
     30         return this.operUpdate(sql, params);
     31     }
     32 
     33     @Override
     34     public boolean delDVD(int did) {
     35         String sql = "delete from dvds where id=?";
     36         List<Object> params = new ArrayList<Object>();
     37         params.add(did);
     38         return this.operUpdate(sql, params);
     39     }
     40 
     41     @Override
     42     public List<DVD> queryDVDs() {
     43         String sql = "select id,dname,dcount,status from dvds";
     44         List<DVD> dList = null;
     45         try {
     46             dList = this.operQuery(sql, null, DVD.class);
     47         } catch (Exception e) {
     48             // TODO 自动生成的 catch 块
     49             e.printStackTrace();
     50         }
     51         return dList;
     52     }
     53 
     54     @Override
     55     public List<DVD> queryDVDByName(String dname) {
     56         String sql = "select id,dname,dcount,status from dvds where dname=?";
     57         List<DVD> dList = null;
     58         List<Object> params = new ArrayList<Object>();
     59         params.add(dname);
     60         try {
     61             dList = this.operQuery(sql, params, DVD.class);
     62         } catch (Exception e) {
     63             // TODO 自动生成的 catch 块
     64             e.printStackTrace();
     65         }
     66         return dList;
     67     }
     68 
     69     /**
     70      * 查询热门dvd就是借出次数前五位的dvd
     71      * 
     72      * @param index
     73      * @param number
     74      * @return
     75      */
     76     @Override
     77     public List<DVD> querySortByLimit(int index, int number) {
     78         String sql = "select id,dname,dcount,status from dvds order by dcount desc limit" + index + "," + number;
     79         List<DVD> dList = null;
     80         try {
     81             dList = this.operQuery(sql, null, DVD.class);
     82         } catch (Exception e) {
     83             // TODO 自动生成的 catch 块
     84             e.printStackTrace();
     85         }
     86         return dList;
     87     }
     88 
     89     @Override
     90     public DVD queryDVDById(int did) {
     91         String sql = "select id,dname,dcount,status from dvds where id=?";
     92         List<DVD> dList = null;
     93         List<Object> params = new ArrayList<Object>();
     94         params.add(did);
     95         try {
     96             dList = this.operQuery(sql, params, DVD.class);
     97         } catch (Exception e) {
     98             // TODO 自动生成的 catch 块
     99             e.printStackTrace();
    100         }
    101         if (dList.size() > 0) {
    102             return dList.get(0);
    103         }
    104         return null;
    105     }
    106 
    107     @Override
    108     public List<DVD> queryDVDByStatus(int status) {
    109         String sql = "select id,dname,dcount,status from dvds where status=?";
    110         List<DVD> dList = null;
    111         List<Object> params = new ArrayList<Object>();
    112         params.add(status);
    113         try {
    114             dList = this.operQuery(sql, params, DVD.class);
    115         } catch (Exception e) {
    116             // TODO 自动生成的 catch 块
    117             e.printStackTrace();
    118         }
    119         return dList;
    120     }
    121 
    122 }

     RecordDaoImp.java

      1 package com.dvd.dao.impl;
      2 
      3 import java.util.ArrayList;
      4 import java.util.List;
      5 
      6 import com.dvd.dao.RecordDao;
      7 import com.dvd.entiy.Record;
      8 import com.dvd.entiy.Record2;
      9 
     10 public class RecordDaoImpl extends BaseDao implements RecordDao {
     11 
     12     @Override
     13     public Record queryRecordById(int rid) {
     14         List<Record> rList = null;
     15         String sql = "select id,uid,did,lendTime,returnTime from records where did=? order by id desc";
     16         List<Object> params = new ArrayList<Object>();
     17         params.add(rid);
     18         try {
     19             rList = this.operQuery(sql, params, Record.class);
     20         } catch (Exception e) {
     21             // TODO 自动生成的 catch 块
     22             e.printStackTrace();
     23         }
     24         if (rList.size() > 0) {
     25             return rList.get(0);
     26         }
     27         return null;
     28     }
     29 
     30     @Override
     31     public boolean saveRecord(Record record) {
     32         String sql = "insert into records(uid,did,lendTime,returnTime) values(?,?,?,?)";
     33         List<Object> params = new ArrayList<Object>();
     34         params.add(record.getUid());
     35         params.add(record.getDid());
     36         params.add(record.getLendTime());
     37         params.add(record.getReturnTime());
     38 
     39         return this.operUpdate(sql, params);
     40     }
     41 
     42     @Override
     43     public boolean updateRecord(Record record) {
     44         String sql = "update records set uid=?,did=?,lendTime=?,returnTime=? where id=?";
     45         List<Object> params = new ArrayList<Object>();
     46         params.add(record.getUid());
     47         params.add(record.getDid());
     48         params.add(record.getLendTime());
     49         params.add(record.getReturnTime());
     50         params.add(record.getId());
     51         return this.operUpdate(sql, params);
     52     }
     53 
     54     @Override
     55     public List<Record2> queryAllRecord() {
     56         List<Record2> data = null;
     57         String sql = "select r.id,d.id as did,u.uname,d.dname,r.lentTime,r.returnTime from users u,dvds d,records r where u.id=r.uid and d.id =r.did";
     58         try {
     59             data = this.operQuery(sql, null, Record2.class);
     60         } catch (Exception e) {
     61             // TODO 自动生成的 catch 块
     62             e.printStackTrace();
     63         }
     64         return data;
     65     }
     66 
     67     @Override
     68     public List<Record2> queryRecordByUname(String uname) {
     69         List<Record2> data = null;
     70         String sql = "select r.id,d.id as did,u.uname,d.dname,r.lendTime,r.returnTime from"
     71                 + " users u,dvds d,records r where u.id=r.uid and d.id =r.did and uname=?";
     72         List<Object> params = new ArrayList<Object>();
     73         params.add(uname);
     74         try {
     75             data = this.operQuery(sql, params, Record2.class);
     76         } catch (Exception e) {
     77             // TODO 自动生成的 catch 块
     78             e.printStackTrace();
     79         }
     80         return data;
     81     }
     82 
     83     @Override
     84     public List<Record2> queryRecordByDname(String dname) {
     85         List<Record2> data = null;
     86         String sql = "select r.id,d.id as did,u.uname,d.dname,r.lendTime,r.returnTime from users u,"
     87                 + "dvds d,records r where u.id=r.uid and d.id =r.did and dname=?";
     88         List<Object> params = new ArrayList<Object>();
     89         params.add(dname);
     90         try {
     91             data = this.operQuery(sql, params, Record2.class);
     92         } catch (Exception e) {
     93             // TODO 自动生成的 catch 块
     94             e.printStackTrace();
     95         }
     96         return data;
     97     }
     98 
     99     /**
    100      * // 查看用户归还记录(已归还 ,未归还)
    101      */
    102     @Override
    103     public List<Record2> queryUserRecordByReturnTime(boolean flag, String uname) {
    104         List<Record2> rList = null;
    105         String sql = null;
    106         if (flag) {
    107             sql = "select r.id,d.id as did,u.uname,d.dname,r.lentTime,r.returnTime from "
    108                     + "uses u,dvds d,records r where u.id=r.uid and d.id =r.did and returnTime is not null and uname=?";
    109         } else {
    110             sql = "select r.id,d.id as did,u.uname,d.dname,r.lentTime,r.returnTime from "
    111                     + "uses u,dvds d,records r where u.id=r.uid and d.id =r.did and returnTime is null and uname=?";
    112         }
    113         List<Object> params = new ArrayList<Object>();
    114         params.add(uname);
    115         try {
    116             rList = this.operQuery(sql, params, Record2.class);
    117         } catch (Exception e) {
    118             e.printStackTrace();
    119         }
    120         return rList;
    121     }
    122 
    123 }

     UserDaoImpl.java

     1 package com.dvd.dao.impl;
     2 
     3 import java.util.ArrayList;
     4 import java.util.List;
     5 
     6 import com.dvd.dao.UserDao;
     7 import com.dvd.entiy.User;
     8 
     9 public class UserDaoImpl extends BaseDao implements UserDao {
    10 
    11     @Override
    12     public boolean saveUser(User user) {
    13         String sql = "insert into users(uname,upass,type) values(?,?,?)";
    14         List<Object> params = new ArrayList<Object>();
    15         params.add(user.getUname());
    16         params.add(user.getUpass());
    17         params.add(user.getType());
    18         return this.operUpdate(sql, params);
    19     }
    20 
    21     @Override
    22     public boolean delUser(int id) {
    23         String sql = "delete from users where id=?";
    24         List<Object> params = new ArrayList<Object>();
    25         params.add(id);
    26         return this.operUpdate(sql, params);
    27     }
    28 
    29     @Override
    30     public boolean updateUser(User user) {
    31         String sql = "updata users set uname=?,upass=?,type=? where id=?";
    32         List<Object> params = new ArrayList<Object>();
    33         params.add(user.getUname());
    34         params.add(user.getUpass());
    35         params.add(user.getType());
    36         params.add(user.getId());
    37         return this.operUpdate(sql, params);
    38     }
    39 
    40     @Override
    41     public User queryUser(User user) {
    42         List<User> uList = null;
    43         String sql = "select id,uname,upass,type from users where uname=? and upass=? and type=?";
    44         List<Object> params = new ArrayList<Object>();
    45         params.add(user.getUname());
    46         params.add(user.getUpass());
    47         params.add(user.getType());
    48         try {
    49             uList = this.operQuery(sql, params, User.class);
    50         } catch (Exception e) {
    51         }
    52 
    53         if (uList.size() > 0) {
    54             return uList.get(0);
    55         }
    56         return null;
    57     }
    58 
    59 }

     

    DVDBiz.java

     1 package com.dvd.biz;
     2 
     3 import java.util.List;
     4 
     5 import com.dvd.entiy.DVD;
     6 
     7 public interface DVDBiz {
     8     public boolean addDVD(DVD dvd);// 添加dvd
     9 
    10     public boolean delDVD(int did);// 删除dvd
    11 
    12     public boolean modifyDVD(DVD dvd);// 修改dvd
    13 
    14     public List<DVD> queryAllDVDs();// 查询所有的dvd信息
    15 
    16     public List<DVD> ranking_top_five();// 查看前5张最爱欢迎的dvd(热门dvd)
    17 
    18     public List<DVD> queryDVDByName(String dname);// 根据DVD的名字来查询
    19 
    20     public DVD queryDVDById(int did);// 根据id来查询 DVD
    21 
    22     public int lendDVD(int did, int uid);// 按dvd编号和用户编号来租DVD
    23 
    24     public int returnDVD(int rid);// 还DVD的功能
    25 
    26     public List<DVD> canLendDVD();// 可借DVD
    27 
    28     public List<DVD> hasLendedDvD();// 不可DVD
    29 
    30 }

    RecordBiz.java

     1 package com.dvd.biz;
     2 
     3 import java.util.List;
     4 
     5 import com.dvd.entiy.Record2;
     6 
     7 public interface RecordBiz {
     8     public List<Record2> queryUserRecords(String uname);// 查看指定用户的租赁记录
     9 
    10     public List<Record2> queryDVDRecords(String dname);// 查看指定DVD的租赁记录
    11 
    12     public List<Record2> queryHasReturnRecords(String uname);// 查看指定用户已归还 的记录
    13 
    14     public List<Record2> queryNoReturnRecords(String uname);// 查看指定用户未归还 的记录
    15 
    16     public List<Record2> queryAllRecords();// 查看所有的记录
    17 }

    UserBiz.java

    package com.dvd.biz;
    
    import com.dvd.entiy.User;
    
    public interface UserBiz {
        // 用户登录,返回的就是登录用户的信息(对象)
        public User login(User user);
    
        // 注册用户
        public int registerUser(User user);
    }

    DVDBizImpl.java

      1 package com.dvd.biz.Impl;
      2 
      3 import java.text.SimpleDateFormat;
      4 import java.util.Date;
      5 import java.util.List;
      6 
      7 import com.dvd.biz.DVDBiz;
      8 import com.dvd.dao.DVDDao;
      9 import com.dvd.dao.RecordDao;
     10 import com.dvd.dao.impl.DVDDaoImpl;
     11 import com.dvd.dao.impl.RecordDaoImpl;
     12 import com.dvd.entiy.DVD;
     13 import com.dvd.entiy.Record;
     14 
     15 public class DVDBizImpl implements DVDBiz {
     16     private DVDDao dvdDao = null;
     17     private RecordDao recordDao = null;
     18 
     19     public DVDBizImpl() {
     20         dvdDao = new DVDDaoImpl();
     21         recordDao = new RecordDaoImpl();
     22     }
     23 
     24     @Override
     25     public boolean addDVD(DVD dvd) {
     26 
     27         return dvdDao.saveDVD(dvd);
     28     }
     29 
     30     @Override
     31     public boolean delDVD(int did) {
     32 
     33         return dvdDao.delDVD(did);
     34     }
     35 
     36     @Override
     37     public boolean modifyDVD(DVD dvd) {
     38         return dvdDao.updateDVD(dvd);
     39     }
     40 
     41     @Override
     42     public List<DVD> queryAllDVDs() {
     43         return dvdDao.queryDVDs();
     44     }
     45 
     46     @Override
     47     public List<DVD> ranking_top_five() {
     48         return dvdDao.querySortByLimit(0, 5);
     49     }
     50 
     51     @Override
     52     public List<DVD> queryDVDByName(String dname) {
     53 
     54         return dvdDao.queryDVDByName(dname);
     55     }
     56 
     57     @Override
     58     public DVD queryDVDById(int did) {
     59         return dvdDao.queryDVDById(did);
     60     }
     61 
     62     @Override
     63     public int lendDVD(int did, int uid) {
     64         DVD dvd = dvdDao.queryDVDById(did);// 查询
     65         if (dvd == null) {
     66             return 0;// 没有找到要借的dvd
     67         } else {
     68             if (dvd.getStatus() == 0) {
     69                 return 1;// 不可借。已经借出
     70             } else {
     71 
     72                 dvd.setStatus(0);// 更新状态代表已经借出
     73                 dvd.setDcount(dvd.getDcount() + 1);
     74                 // System.out.println(dvd.getId());
     75                 //// System.out.println(dvd.getDname());
     76                 // System.out.println(dvd.getDcount());
     77                 // System.out.println(dvd.getStatus());
     78                 boolean flag1 = dvdDao.updateDVD(dvd);// 更新DVD
     79                 // System.out.println("更新dvdflag1=" + flag1);
     80                 Record record = new Record(uid, did, new SimpleDateFormat("yyyy-MM-dd").format(new Date()), null);
     81                 boolean flag2 = recordDao.saveRecord(record);// 插入租赁记录;
     82                 // System.out.println("更新插入租赁记录;flag2=" + flag2);
     83                 if (flag1 && flag2) {
     84                     return 2;// 借出成功
     85                 } else {
     86                     // dvd.setStatus(1);
     87                     // dvdDao.updateDVD(dvd);
     88                     return 3;// 借出失败
     89                 }
     90             }
     91         }
     92     }
     93 
     94     @Override
     95     public int returnDVD(int rid) {
     96         Record record = recordDao.queryRecordById(rid);
     97         // System.out.println(record);
     98         if (record == null) {
     99             return 1;// 输入不正确
    100         } else if (record.getReturnTime() != null) {
    101 
    102             return 2;// dvd已经归还
    103         } else {
    104             record.setReturnTime(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
    105             boolean flag1 = recordDao.updateRecord(record);// 更新记录
    106             // System.out.println("更新flag= " + flag1);
    107             DVD dvd = dvdDao.queryDVDById(record.getDid());// 打到对应的dvd
    108             dvd.setStatus(1);// 可借状态
    109             boolean flag2 = dvdDao.updateDVD(dvd);
    110             // System.out.println("更新flag2= " + flag2);
    111             if (flag1 && flag2) {
    112                 return 3;// 归还成功
    113             } else {
    114                 dvd.setStatus(0);// 未还状态
    115                 dvdDao.updateDVD(dvd);
    116                 return 4;// 归还失败
    117             }
    118         }
    119     }
    120 
    121     @Override
    122     public List<DVD> canLendDVD() {
    123         return dvdDao.queryDVDByStatus(1);
    124     }
    125 
    126     @Override
    127     public List<DVD> hasLendedDvD() {
    128         return dvdDao.queryDVDByStatus(0);
    129     }
    130 
    131 }

     RecordBizImpl.java

     1 package com.dvd.biz.Impl;
     2 
     3 import java.util.List;
     4 
     5 import com.dvd.biz.RecordBiz;
     6 import com.dvd.dao.RecordDao;
     7 import com.dvd.dao.impl.RecordDaoImpl;
     8 import com.dvd.entiy.Record2;
     9 
    10 public class RecordBizImpl implements RecordBiz {
    11     private RecordDao recordDao = null;
    12 
    13     public RecordBizImpl() {
    14         recordDao = new RecordDaoImpl();
    15     }
    16 
    17     @Override
    18     public List<Record2> queryUserRecords(String uname) {
    19         return recordDao.queryRecordByUname(uname);
    20     }
    21 
    22     @Override
    23     public List<Record2> queryDVDRecords(String dname) {
    24         return recordDao.queryRecordByDname(dname);
    25     }
    26 
    27     @Override
    28     public List<Record2> queryHasReturnRecords(String uname) {
    29         return recordDao.queryUserRecordByReturnTime(true, uname);
    30     }
    31 
    32     @Override
    33     public List<Record2> queryNoReturnRecords(String uname) {
    34         // TODO 自动生成的方法存根
    35         return recordDao.queryUserRecordByReturnTime(false, uname);
    36     }
    37 
    38     @Override
    39     public List<Record2> queryAllRecords() {
    40         // TODO 自动生成的方法存根
    41         return recordDao.queryAllRecord();
    42     }
    43 
    44 }

     UserBizImpl.java

     1 package com.dvd.biz.Impl;
     2 
     3 import com.dvd.biz.UserBiz;
     4 import com.dvd.dao.UserDao;
     5 import com.dvd.dao.impl.UserDaoImpl;
     6 import com.dvd.entiy.User;
     7 
     8 public class UserBizImpl implements UserBiz {
     9     private UserDao userDao = null;
    10 
    11     public UserBizImpl() {
    12         userDao = new UserDaoImpl();
    13     }
    14 
    15     @Override
    16     public User login(User user) {
    17         return userDao.queryUser(user);
    18     }
    19 
    20     @Override
    21     public int registerUser(User user) {
    22         if (userDao.queryUser(user) != null) {
    23             return 1;// 此用户名已经存在
    24         } else {
    25             boolean res = userDao.saveUser(user);
    26             if (res) {
    27                 return 2;// 注册成功
    28             } else {
    29                 return 3;// 注册失败
    30             }
    31         }
    32     }
    33 
    34 }

     

     AdminDVDOperatorView.java

      1 package com.dvd.view;
      2 
      3 import java.awt.BorderLayout;
      4 import java.awt.GridLayout;
      5 import java.awt.event.ActionEvent;
      6 import java.awt.event.ActionListener;
      7 import java.awt.event.ItemEvent;
      8 import java.awt.event.ItemListener;
      9 import java.awt.event.MouseAdapter;
     10 import java.awt.event.MouseEvent;
     11 import java.util.ArrayList;
     12 import java.util.List;
     13 
     14 import javax.swing.BorderFactory;
     15 import javax.swing.JButton;
     16 import javax.swing.JComboBox;
     17 import javax.swing.JInternalFrame;
     18 import javax.swing.JLabel;
     19 import javax.swing.JOptionPane;
     20 import javax.swing.JPanel;
     21 import javax.swing.JScrollPane;
     22 import javax.swing.JTable;
     23 import javax.swing.JTextField;
     24 import javax.swing.event.TableModelListener;
     25 import javax.swing.table.TableModel;
     26 
     27 import com.dvd.Util.DVDUtil;
     28 import com.dvd.biz.DVDBiz;
     29 import com.dvd.biz.Impl.DVDBizImpl;
     30 import com.dvd.entiy.DVD;
     31 
     32 public class AdminDVDOperatorView extends JInternalFrame {
     33 
     34     private static final long serialVersionUID = -3558209667843105955L;
     35     private DVDBiz dvdBiz = null;
     36     private List<DVD> dvdList = null;
     37     private DVDInfoTableModel infoTableModel = null;
     38 
     39     private JPanel paneltable = null;
     40     private JScrollPane jScrollPanetable = null;// 用来保存Jtable的一个面板
     41     private JTable table = null;// 声明JTable
     42     private JPanel panelmanage = null;
     43     private JPanel manage = null;// 声明信息
     44 
     45     private JPanel panelbutton = null;// 按钮面板
     46     private JTextField tf_search = null;
     47     private JButton btn_search = null;
     48     private JButton btn_add = null;
     49     private JButton btn_updata = null;
     50     private JButton btn_del = null;
     51     private JButton btn_exit = null;
     52     private JComboBox<String> cb_type = null;
     53     private JLabel lb_type = null;
     54 
     55     private JLabel lb_name = null;
     56     private JLabel lb_count = null;
     57     private JLabel lb_status = null;
     58     private JTextField tf_name = null;
     59     private JTextField tf_count = null;
     60     private JComboBox<String> cb_status = null;
     61 
     62     public AdminDVDOperatorView() {
     63         dvdBiz = new DVDBizImpl();
     64         init();
     65         registerListener();
     66     }
     67 
     68     private void init() {
     69         this.setTitle("DVD租赁记录查询");
     70         this.setSize(525, 450);
     71         this.setIconifiable(true);// 窗体可最小化
     72         this.setClosable(true);// 窗体可被关闭
     73         this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
     74         // this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     75         this.setLayout(new BorderLayout());
     76         dvdList = new ArrayList<DVD>();
     77 
     78         lb_name = new JLabel("DVD名字", JLabel.CENTER);
     79         lb_count = new JLabel("借出次数", JLabel.CENTER);
     80         lb_status = new JLabel("DVD状态", JLabel.CENTER);
     81         tf_name = new JTextField(8);
     82         tf_count = new JTextField(8);
     83         cb_status = new JComboBox<String>(new String[] { "已借", "可借" });
     84         paneltable = new JPanel(new BorderLayout());
     85         panelmanage = new JPanel();
     86         manage = new JPanel();
     87 
     88         table = new JTable();
     89 
     90         // 让JTable绑定数据模型呈现数据
     91 
     92         refreshTable(dvdList);
     93 
     94         manage.add(lb_name);
     95         manage.add(tf_name);
     96         manage.add(lb_count);
     97         manage.add(tf_count);
     98         manage.add(lb_status);
     99         manage.add(cb_status);
    100 
    101         jScrollPanetable = new JScrollPane();// 创建面板
    102         // 给面板设置边框
    103         paneltable
    104                 .setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "DVD记录查询 "));
    105         jScrollPanetable.setViewportView(table);
    106         paneltable.add(jScrollPanetable);
    107         panelmanage.add(manage);
    108         paneltable.add(panelmanage, BorderLayout.SOUTH);
    109         this.add(paneltable, BorderLayout.CENTER);
    110         // 给面板设置边框
    111         panelmanage.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null)));
    112 
    113         panelbutton = new JPanel(new GridLayout(9, 1, 5, 10));
    114         // 给面板设置边框
    115         panelbutton.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "查询条件"));
    116         this.add(panelbutton, BorderLayout.EAST);
    117         lb_type = new JLabel("查询类型");
    118         panelbutton.add(lb_type);
    119         cb_type = new JComboBox<String>(new String[] { "所有DVD", "DVD编号", "DVD名字" });
    120         panelbutton.add(cb_type);
    121 
    122         tf_search = new JTextField();
    123         panelbutton.add(tf_search);
    124 
    125         btn_search = new JButton("查询");
    126         panelbutton.add(btn_search);
    127         tf_search.setEditable(false);// 默认不可用
    128 
    129         btn_add = new JButton("添加DVD");
    130         panelbutton.add(btn_add);
    131 
    132         btn_updata = new JButton("更新DVD");
    133         panelbutton.add(btn_updata);
    134         btn_updata.setEnabled(false);// 默认不可用
    135 
    136         btn_del = new JButton("删除DVD");
    137         panelbutton.add(btn_del);
    138         btn_del.setEnabled(false);// 默认不可用
    139 
    140         panelbutton.add(new JLabel());
    141         this.getRootPane().setDefaultButton(btn_search);// 设置默认获取的焦点
    142 
    143         btn_exit = new JButton("退出窗口");
    144         panelbutton.add(btn_exit);
    145 
    146         this.setVisible(true);
    147     }
    148 
    149     private void registerListener() {
    150 
    151         btn_exit.addActionListener(new ActionListener() {
    152 
    153             @Override
    154             public void actionPerformed(ActionEvent e) {
    155                 int flag = JOptionPane.showInternalConfirmDialog(AdminDVDOperatorView.this, "是否确定退出?", "确认信息",
    156                         JOptionPane.YES_NO_OPTION);
    157                 if (flag == JOptionPane.YES_OPTION) {
    158                     AdminDVDOperatorView.this.dispose();
    159                 }
    160             }
    161         });
    162 
    163         btn_del.addActionListener(new ActionListener() {
    164 
    165             @Override
    166             public void actionPerformed(ActionEvent e) {
    167                 int row = table.getSelectedRow();// 取得选中的那行
    168                 int did = (Integer) table.getValueAt(row, 0);
    169                 int flag = JOptionPane.showInternalConfirmDialog(AdminDVDOperatorView.this, "是否确定删除DVD?", "确认信息",
    170                         JOptionPane.YES_NO_OPTION);
    171                 if (flag == JOptionPane.YES_OPTION) {
    172                     boolean res = dvdBiz.delDVD(did);
    173                     if (res) {
    174                         JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "删除成功!");
    175                         return;
    176                     } else {
    177                         JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "删除失败,请联系管理员!!");
    178                         return;
    179                     }
    180                 }
    181             }
    182         });
    183 
    184         btn_updata.addActionListener(new ActionListener() {
    185 
    186             @Override
    187             public void actionPerformed(ActionEvent e) {
    188                 String dname = tf_name.getText().trim();
    189                 String dcount = tf_count.getText().trim();
    190                 int status = cb_status.getSelectedIndex();
    191                 if (dname.equals("")) {
    192                     JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "DVD名字不能为空");
    193                     return;
    194                 } else if (dcount.equals("")) {
    195                     JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "借出次数不能为空");
    196                     return;
    197                 }
    198                 if (!DVDUtil.isNumber(dcount)) {
    199                     JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "DVD借出次数只能是数字");
    200                     return;
    201                 }
    202                 int flag = JOptionPane.showInternalConfirmDialog(AdminDVDOperatorView.this, "是否确定更新DVD?", "确认信息",
    203                         JOptionPane.YES_NO_OPTION);
    204 
    205                 if (flag == JOptionPane.YES_OPTION) {
    206                     int row = table.getSelectedRow();
    207                     boolean res = dvdBiz
    208                             .modifyDVD(new DVD((Integer) table.getValueAt(row, 0), dname, new Integer(dcount), status));
    209                     System.out.println(res);
    210                     if (res) {
    211                         JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "更新成功!");
    212                         return;
    213                     } else {
    214                         JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "更新失败,请联系管理员!");
    215                         return;
    216                     }
    217                 }
    218             }
    219         });
    220 
    221         table.addMouseListener(new MouseAdapter() {
    222             @Override
    223             public void mouseClicked(MouseEvent e) {
    224                 /// 假设选中一行,更新删除按钮可用
    225                 if (table.getSelectedRow() != -1) {
    226                     btn_del.setEnabled(true);
    227                     btn_updata.setEnabled(true);
    228 
    229                 }
    230                 int row = table.getSelectedRow();// 得到你所选中那行的下标
    231                 String dname = table.getValueAt(row, 1).toString();
    232                 String dcount = table.getValueAt(row, 2).toString();
    233                 String status = table.getValueAt(row, 3).toString();
    234                 tf_name.setText(dname);
    235                 tf_count.setText(dcount);
    236                 cb_status.setSelectedItem(status);
    237             }
    238         });
    239 
    240         cb_type.addItemListener(new ItemListener() {
    241 
    242             @Override
    243             public void itemStateChanged(ItemEvent e) {
    244                 String item = e.getItem().toString();
    245                 tf_search.setText("");
    246                 if (item.equals("所有DVD")) {
    247                     tf_search.setEditable(false);
    248                 } else {
    249                     tf_search.setEditable(true);
    250                 }
    251             }
    252         });
    253 
    254         btn_add.addActionListener(new ActionListener() {
    255 
    256             @Override
    257             public void actionPerformed(ActionEvent e) {
    258                 String dname = tf_name.getText().trim();
    259                 String dcount = tf_count.getText().trim();
    260                 int status = cb_status.getSelectedIndex();// 0代表已经借出,1代表可借
    261                 if (dname.equals("")) {
    262                     JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "DVD名字不能为空");
    263                     return;
    264                 } else if (dcount.equals("")) {
    265                     JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "借出次数不能为空");
    266                     return;
    267                 }
    268                 if (!DVDUtil.isNumber(dcount)) {
    269                     JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "DVD借出次数只能是数字");
    270                     return;
    271                 }
    272                 int flag = JOptionPane.showInternalConfirmDialog(AdminDVDOperatorView.this, "是否确定添加DVD?", "确认信息",
    273                         JOptionPane.YES_NO_OPTION);
    274 
    275                 if (flag == JOptionPane.YES_OPTION) {
    276                     boolean res = dvdBiz.addDVD(new DVD(dname, new Integer(dcount), status));
    277                     if (res) {
    278                         JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "添加成功!");
    279                         return;
    280                     } else {
    281                         JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "添加失败,请联系管理员!!");
    282                         return;
    283                     }
    284                 }
    285             }
    286         });
    287 
    288         btn_search.addActionListener(new ActionListener() {
    289 
    290             @Override
    291             public void actionPerformed(ActionEvent e) {
    292 
    293                 int index = cb_type.getSelectedIndex();
    294                 String content = tf_search.getText().trim();
    295                 if (index != 0 && content.equals("")) {
    296                     JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "查询的内容不能为空");
    297                     return;
    298                 }
    299                 // 先清除数据 ,防止数据 的累加
    300                 if (dvdList != null) {
    301                     dvdList.clear();
    302                 }
    303                 if (index == 0) {
    304                     dvdList = dvdBiz.queryAllDVDs();
    305                 } else if (index == 1) {
    306                     tf_search.setEnabled(true);// 输入框可用
    307                     if (DVDUtil.isNumber(content)) {
    308                         DVD dvd = dvdBiz.queryDVDById(Integer.parseInt(content));
    309                         if (dvd != null) {
    310                             dvdList.add(dvd);
    311                         }
    312                     } else {
    313                         JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "输入的编号只能是数字");
    314                         return;
    315                     }
    316                 } else {
    317                     dvdList = dvdBiz.queryDVDByName(content);
    318                 }
    319                 refreshTable(dvdList);
    320                 btn_del.setEnabled(false);
    321                 btn_updata.setEnabled(false);
    322                 if (dvdList.size() == 0) {
    323                     JOptionPane.showInternalMessageDialog(AdminDVDOperatorView.this, "没有你要查询的记录!");
    324                     return;
    325                 }
    326             }
    327         });
    328     }
    329 
    330     private class DVDInfoTableModel implements TableModel {
    331         private List<DVD> dvdsList = null;
    332 
    333         private DVDInfoTableModel(List<DVD> dvdList) {
    334             this.dvdsList = dvdList;
    335         }
    336 
    337         @Override
    338         public void addTableModelListener(TableModelListener l) {
    339 
    340         }
    341 
    342         // JTable 列的数据类型
    343         public Class<?> getColumnClass(int columnIndex) {
    344 
    345             return String.class;
    346         }
    347 
    348         // JTable数据 的列数
    349         public int getColumnCount() {
    350 
    351             return 4;
    352         }
    353 
    354         // 设置 JTable数据 的列名
    355         public String getColumnName(int columnIndex) {
    356             if (columnIndex == 0) {
    357                 return "影碟ID";
    358             } else if (columnIndex == 1) {
    359                 return "影碟名字";
    360             } else if (columnIndex == 2) {
    361                 return "影碟借出次数";
    362             } else if (columnIndex == 3) {
    363                 return "影碟状态";
    364             } else {
    365                 return "出错";
    366             }
    367         }
    368 
    369         // JTable显示 的行数
    370         public int getRowCount() {
    371 
    372             return dvdsList.size();
    373         }
    374 
    375         // 获取JTable中指定行指定单元格的数据
    376         public Object getValueAt(int rowIndex, int columnIndex) {
    377             DVD dvd = dvdsList.get(rowIndex);
    378             if (columnIndex == 0) {
    379                 return dvd.getId();
    380             } else if (columnIndex == 1) {
    381                 return dvd.getDname();
    382             } else if (columnIndex == 2) {
    383                 return dvd.getDcount();
    384             } else if (columnIndex == 3) {
    385                 return "" + (dvd.getStatus() == 1 ? "可借" : "已借");
    386             } else {
    387                 return "出错";
    388             }
    389         }
    390 
    391         // 设置单元格是否可以编辑
    392         public boolean isCellEditable(int rowIndex, int columnIndex) {
    393 
    394             return false;
    395         }
    396 
    397         @Override
    398         public void removeTableModelListener(TableModelListener l) {
    399 
    400         }
    401 
    402         @Override
    403         public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
    404 
    405         }
    406 
    407     }
    408 
    409     // 刷新Jtable并显示数据
    410     private void refreshTable(List<DVD> dvdList) {
    411         infoTableModel = new DVDInfoTableModel(dvdList);
    412         table.setModel(infoTableModel);
    413     }
    414 }

     AdminMainView.java

      1 package com.dvd.view;
      2 
      3 import java.awt.BorderLayout;
      4 import java.awt.Color;
      5 import java.awt.EventQueue;
      6 import java.awt.Font;
      7 import java.awt.GridLayout;
      8 import java.awt.event.ActionEvent;
      9 import java.awt.event.ActionListener;
     10 
     11 import javax.swing.BorderFactory;
     12 import javax.swing.ImageIcon;
     13 import javax.swing.JButton;
     14 import javax.swing.JDesktopPane;
     15 import javax.swing.JFrame;
     16 import javax.swing.JLabel;
     17 import javax.swing.JOptionPane;
     18 import javax.swing.JPanel;
     19 
     20 import com.dvd.entiy.User;
     21 
     22 public class AdminMainView extends JFrame {
     23     private static final long serialVersionUID = -7828161836358813128L;
     24 
     25     private JPanel panel_main = null;
     26     private JPanel panel_wel = null;
     27     private JDesktopPane desktopPane = null;
     28     private JPanel panel_btn = null;
     29 
     30     private JButton btn_query_rent_dvd = null;
     31     private JButton btn_dvd_record = null;
     32     private JButton btn_exit = null;
     33 
     34     private JLabel lb_welcome = null;
     35     private JLabel desk_img = null;
     36     private User user = null;
     37 
     38     public AdminMainView(User user) {
     39         this.user = user;
     40         init();
     41         registerListener();
     42 
     43     }
     44 
     45     private void init() {
     46 
     47         panel_main = new JPanel(new BorderLayout());
     48         panel_wel = new JPanel();
     49         desktopPane = new JDesktopPane();
     50         panel_btn = new JPanel(new GridLayout(7, 1, 0, 35));
     51 
     52         btn_query_rent_dvd = new JButton("管理员DVD查询操作");
     53         btn_dvd_record = new JButton("DVD租赁记录查询");
     54         btn_exit = new JButton("退出窗口");
     55         /*
     56          * 快捷功能区
     57          */
     58 
     59         panel_btn.setBorder(BorderFactory.createTitledBorder(BorderFactory.createRaisedBevelBorder(), "快捷功能区"));
     60         panel_btn.add(new JLabel());
     61         panel_btn.add(new JLabel());
     62         panel_btn.add(btn_query_rent_dvd);
     63         panel_btn.add(btn_dvd_record);
     64         panel_btn.add(btn_exit);
     65         panel_btn.add(new JLabel());
     66         panel_btn.add(new JLabel());
     67 
     68         /*
     69          * 欢迎区
     70          */
     71         lb_welcome = new JLabel("欢  迎   " + user.getUname() + "  使  用  影  碟  租  赁  管  理  系  统");
     72         lb_welcome.setFont(new Font("宋体", Font.BOLD, 23));
     73         lb_welcome.setForeground(Color.BLUE);
     74         panel_wel.add(lb_welcome);
     75         EventQueue.invokeLater(new Runnable() {
     76 
     77             @Override
     78             public void run() {
     79                 new Thread(new DynaminThread()).start();
     80 
     81             }
     82         });
     83         /*
     84          * 主面板
     85          */
     86         ImageIcon image = new ImageIcon("src/images/main.png");
     87         desk_img = new JLabel(image);
     88         desk_img.setBounds(0, 0, image.getIconWidth(), image.getIconHeight());
     89         desktopPane.add(desk_img, new Integer(Integer.MIN_VALUE));
     90 
     91         panel_main.add(panel_wel, BorderLayout.NORTH);
     92         panel_main.add(panel_btn, BorderLayout.EAST);
     93         panel_main.add(desktopPane, BorderLayout.CENTER);
     94 
     95         this.getContentPane().add(panel_main);
     96         this.setTitle("管理员操作主面板");
     97         // this.setSize(1000, 650);
     98         this.pack();
     99         this.setResizable(false);
    100         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    101         this.setLocationRelativeTo(null);
    102         this.setVisible(true);
    103     }
    104 
    105     private void registerListener() {
    106 
    107         /*
    108          * 管理员DVD查询操作
    109          */
    110         btn_query_rent_dvd.addActionListener(new ActionListener() {
    111 
    112             @Override
    113             public void actionPerformed(ActionEvent e) {
    114                 AdminDVDOperatorView qdv = new AdminDVDOperatorView();
    115                 desktopPane.add(qdv);// 把指定的视图添加到时桌面容器中去
    116                 qdv.toFront();// 视图显示 的前面
    117 
    118             }
    119         });
    120 
    121         /*
    122          * DVD租赁记录查询
    123          */
    124         btn_dvd_record.addActionListener(new ActionListener() {
    125 
    126             @Override
    127             public void actionPerformed(ActionEvent e) {
    128                 AdminQueryDVDRecord qdv = new AdminQueryDVDRecord();
    129                 desktopPane.add(qdv);// 把指定的视图添加到时桌面容器中去
    130                 qdv.toFront();// 视图显示 的前面
    131 
    132             }
    133         });
    134 
    135         /*
    136          * 退出窗口
    137          */
    138         btn_exit.addActionListener(new ActionListener() {
    139 
    140             @Override
    141             public void actionPerformed(ActionEvent e) {
    142                 int flag = JOptionPane.showConfirmDialog(AdminMainView.this, "是否确定退出窗口", "确认信息",
    143                         JOptionPane.YES_NO_OPTION);
    144                 if (flag == JOptionPane.YES_OPTION) {
    145                     System.exit(0);// 关闭窗体,并释放全部资源。
    146                     // AdminMainView.this.dispose();// 关闭窗体,释放一部分资源。
    147                 }
    148             }
    149         });
    150 
    151     }
    152 
    153     /**
    154      * 这是一个线程类,专门用来进行对欢迎Label标签进行移动
    155      * 
    156      * @author LZC
    157      *
    158      */
    159     private class DynaminThread implements Runnable {
    160 
    161         @Override
    162         public void run() {
    163             while (true) {
    164                 for (int i = 780; i > -650; i--) {
    165                     try {
    166                         Thread.sleep(10);
    167                     } catch (InterruptedException e) {
    168                         e.printStackTrace();
    169                     }
    170                     lb_welcome.setLocation(i, 5);
    171                 }
    172             }
    173 
    174         }
    175     }
    176 
    177 }

     AdminQueryDVDRecord.java

      1 package com.dvd.view;
      2 
      3 import java.awt.BorderLayout;
      4 import java.awt.GridLayout;
      5 import java.awt.event.ActionEvent;
      6 import java.awt.event.ActionListener;
      7 import java.util.ArrayList;
      8 import java.util.List;
      9 
     10 import javax.swing.BorderFactory;
     11 import javax.swing.JButton;
     12 import javax.swing.JComboBox;
     13 import javax.swing.JInternalFrame;
     14 import javax.swing.JLabel;
     15 import javax.swing.JOptionPane;
     16 import javax.swing.JPanel;
     17 import javax.swing.JScrollPane;
     18 import javax.swing.JTable;
     19 import javax.swing.JTextField;
     20 import javax.swing.event.TableModelListener;
     21 import javax.swing.table.TableModel;
     22 
     23 import com.dvd.biz.RecordBiz;
     24 import com.dvd.biz.Impl.RecordBizImpl;
     25 import com.dvd.entiy.Record2;
     26 
     27 public class AdminQueryDVDRecord extends JInternalFrame {
     28 
     29     private static final long serialVersionUID = -3558209667843105955L;
     30     private JScrollPane jScrollPanetable = null;// 用来保存Jtable的一个面板
     31     private JTable table = null;// 声明JTable
     32 
     33     private JPanel panelbutton = null;// 按钮面板
     34     private JTextField tf_insert = null;
     35     private JButton btn_search = null;
     36     // private JButton btn_rent = null;
     37     private JButton btn_exit = null;
     38     private JComboBox<String> cb_type = null;
     39     private JLabel lb_type = null;
     40 
     41     private List<Record2> record2List = null;
     42     private DVDInfoTableModel infoTableModel = null;
     43     RecordBiz recordBiz = null;
     44 
     45     public AdminQueryDVDRecord() {
     46 
     47         init();
     48         registerLister();
     49 
     50     }
     51 
     52     private void init() {
     53         this.setTitle("DVD租赁记录查询");
     54         this.setSize(525, 450);
     55         this.setIconifiable(true);// 窗体可最小化
     56         this.setClosable(true);// 窗体可被关闭
     57         this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
     58         this.setLayout(new BorderLayout());
     59 
     60         recordBiz = new RecordBizImpl();
     61 
     62         record2List = new ArrayList<Record2>();
     63         table = new JTable();
     64         jScrollPanetable = new JScrollPane();// 创建面板
     65         // 给面板设置边框
     66         jScrollPanetable
     67                 .setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "DVD记录查询 "));
     68         jScrollPanetable.setViewportView(table);
     69         this.add(jScrollPanetable, BorderLayout.CENTER);
     70 
     71         panelbutton = new JPanel(new GridLayout(9, 1, 10, 10));
     72         // 给面板设置边框
     73         panelbutton.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "查询条件"));
     74         this.add(panelbutton, BorderLayout.EAST);
     75         refreshTable(record2List);
     76         lb_type = new JLabel("查询类型");
     77         panelbutton.add(lb_type);
     78         cb_type = new JComboBox<String>(new String[] { "指定用户租赁记录", "指定DVD租赁记录" });
     79         panelbutton.add(cb_type);
     80 
     81         tf_insert = new JTextField();
     82         panelbutton.add(tf_insert);
     83 
     84         btn_search = new JButton("查询");
     85         panelbutton.add(btn_search);
     86 
     87         panelbutton.add(new JLabel());
     88         panelbutton.add(new JLabel());
     89         panelbutton.add(new JLabel());
     90         panelbutton.add(new JLabel());
     91 
     92         btn_exit = new JButton("退出窗口");
     93         panelbutton.add(btn_exit);
     94         this.getRootPane().setDefaultButton(btn_search);// 默认查询为获得焦点的按钮
     95         this.setVisible(true);
     96     }
     97 
     98     private void registerLister() {
     99         btn_search.addActionListener(new ActionListener() {
    100 
    101             @Override
    102             public void actionPerformed(ActionEvent e) {
    103                 String content = tf_insert.getText().trim();
    104                 int index = cb_type.getSelectedIndex();
    105                 if (content.equals("")) {
    106                     JOptionPane.showInternalMessageDialog(AdminQueryDVDRecord.this, "查询内容不能为空");
    107                     return;
    108                 }
    109                 // record2List = recordBiz.queryHasReturnRecords(content);
    110                 // 先清除数据 ,防止数据 的累加
    111                 if (record2List != null) {
    112                     record2List.clear();
    113                 }
    114                 List<Record2> record22List = new ArrayList<Record2>();
    115                 if (index == 0) {
    116                     record22List = recordBiz.queryUserRecords(content);
    117                 } else {
    118                     record22List = recordBiz.queryDVDRecords(content);
    119                 }
    120                 refreshTable(record22List);
    121                 if (record22List.size() == 0) {
    122                     JOptionPane.showInternalMessageDialog(AdminQueryDVDRecord.this, "没有你要查询的记录!");
    123                     return;
    124                 }
    125 
    126             }
    127         });
    128         btn_exit.addActionListener(new ActionListener() {
    129 
    130             @Override
    131             public void actionPerformed(ActionEvent arg0) {
    132                 int flag = JOptionPane.showInternalConfirmDialog(AdminQueryDVDRecord.this, "是否确定退出?", "确认信息",
    133                         JOptionPane.YES_NO_OPTION);
    134                 if (flag == JOptionPane.YES_OPTION) {
    135                     AdminQueryDVDRecord.this.dispose();
    136                 }
    137 
    138             }
    139         });
    140 
    141     }
    142 
    143     private class DVDInfoTableModel implements TableModel {
    144         private List<Record2> record2List = null;
    145 
    146         private DVDInfoTableModel(List<Record2> record2List) {
    147             this.record2List = record2List;
    148         }
    149 
    150         @Override
    151         public void addTableModelListener(TableModelListener l) {
    152             // TODO 自动生成的方法存根
    153 
    154         }
    155 
    156         // JTable 列的数据类型
    157         public Class<?> getColumnClass(int columnIndex) {
    158             // TODO 自动生成的方法存根
    159             return String.class;
    160         }
    161 
    162         // JTable数据 的列数
    163         public int getColumnCount() {
    164             // TODO 自动生成的方法存根
    165             return 6;
    166         }
    167 
    168         @Override
    169         public String getColumnName(int columnIndex) {
    170             if (columnIndex == 0) {
    171                 return "记录ID";
    172             } else if (columnIndex == 1) {
    173                 return "影碟ID号";
    174             } else if (columnIndex == 2) {
    175                 return "用户名";
    176             } else if (columnIndex == 3) {
    177                 return "影碟名字";
    178             } else if (columnIndex == 4) {
    179                 return "租赁时间";
    180             } else if (columnIndex == 5) {
    181                 return "归还时间";
    182             } else {
    183                 return "出错";
    184             }
    185         }
    186 
    187         // JTable显示 的行数
    188         public int getRowCount() {
    189             // TODO 自动生成的方法存根
    190             return record2List.size();
    191         }
    192 
    193         // 获取JTable中指定行指定单元格的数据
    194         public Object getValueAt(int rowIndex, int columnIndex) {
    195             Record2 record = record2List.get(rowIndex);
    196             if (columnIndex == 0) {
    197                 return record.getId();
    198             } else if (columnIndex == 1) {
    199                 return record.getDid();
    200             } else if (columnIndex == 2) {
    201                 return record.getUname();
    202             } else if (columnIndex == 3) {
    203                 return record.getDname();
    204             } else if (columnIndex == 4) {
    205                 return record.getLendTime();
    206             } else if (columnIndex == 5) {
    207                 return record.getReturnTime();
    208             } else {
    209                 return "出错";
    210             }
    211         }
    212 
    213         @Override
    214         public boolean isCellEditable(int rowIndex, int columnIndex) {
    215             // TODO 自动生成的方法存根
    216             return false;
    217         }
    218 
    219         @Override
    220         public void removeTableModelListener(TableModelListener l) {
    221             // TODO 自动生成的方法存根
    222 
    223         }
    224 
    225         @Override
    226         public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
    227             // TODO 自动生成的方法存根
    228 
    229         }
    230 
    231     }
    232 
    233     private void refreshTable(List<Record2> record2List) {
    234         infoTableModel = new DVDInfoTableModel(record2List);
    235         table.setModel(infoTableModel);
    236     }
    237 
    238 }

     LoginView.java

      1 package com.dvd.view;
      2 
      3 import java.awt.GridLayout;
      4 import java.awt.event.ActionEvent;
      5 import java.awt.event.ActionListener;
      6 
      7 import javax.swing.ImageIcon;
      8 import javax.swing.JButton;
      9 import javax.swing.JComboBox;
     10 import javax.swing.JFrame;
     11 import javax.swing.JLabel;
     12 import javax.swing.JOptionPane;
     13 import javax.swing.JPanel;
     14 import javax.swing.JPasswordField;
     15 import javax.swing.JTextField;
     16 
     17 import com.dvd.biz.UserBiz;
     18 import com.dvd.biz.Impl.UserBizImpl;
     19 import com.dvd.entiy.User;
     20 
     21 public class LoginView extends JFrame {
     22 
     23     private static final long serialVersionUID = 7893951512570101893L;
     24 
     25     private UserBiz userBiz = null;
     26 
     27     private JPanel panel_main = null;
     28     private JPanel panel_left = null;
     29     private JPanel panel_right = null;
     30 
     31     private JLabel lb_img = null;
     32     private JLabel lb_uname = null;
     33     private JLabel lb_upass = null;
     34     private JLabel lb_type = null;
     35 
     36     private JTextField tf_uname = null;
     37     private JPasswordField pf_upass = null;
     38     private JComboBox<String> cb_type = null;
     39 
     40     private JButton btn_login = null;
     41     private JButton btn_register = null;
     42 
     43     public LoginView() {
     44         userBiz = new UserBizImpl();
     45         init();
     46         registerListener();
     47     }
     48 
     49     private void init() {
     50         this.setSize(320, 220);
     51         this.setResizable(false);
     52         this.setLocationRelativeTo(null);// 窗口在中间打开
     53         this.setTitle("登录窗口");
     54         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     55         panel_main = new JPanel(new GridLayout(1, 2));
     56         panel_left = new JPanel();
     57         panel_right = new JPanel(new GridLayout(4, 2, 10, 0));
     58 
     59         lb_img = new JLabel(new ImageIcon(ClassLoader.getSystemResource("images/login.png")));
     60         lb_uname = new JLabel("用  户:", JLabel.CENTER);
     61         lb_upass = new JLabel("密  码:", JLabel.CENTER);
     62         lb_type = new JLabel("类  型:", JLabel.CENTER);
     63 
     64         tf_uname = new JTextField(8);
     65         pf_upass = new JPasswordField(8);
     66         cb_type = new JComboBox<String>(new String[] { "普通用户", "管理员" });
     67 
     68         btn_login = new JButton("登录");
     69         btn_register = new JButton("注册");
     70         this.getRootPane().setDefaultButton(btn_login);// 默认登录为获得焦点的按钮
     71 
     72         panel_left.add(lb_img);
     73         panel_right.add(lb_uname);
     74         panel_right.add(tf_uname);
     75         panel_right.add(lb_upass);
     76         panel_right.add(pf_upass);
     77         panel_right.add(lb_type);
     78         panel_right.add(cb_type);
     79         panel_right.add(btn_login);
     80         panel_right.add(btn_register);
     81 
     82         panel_main.add(panel_left);
     83         panel_main.add(panel_right);
     84 
     85         this.getContentPane().add(panel_main);
     86         this.pack();
     87         this.setVisible(true);
     88 
     89     }
     90 
     91     private void registerListener() {
     92         btn_login.addActionListener(new ActionListener() {
     93 
     94             @Override
     95             public void actionPerformed(ActionEvent arg0) {
     96                 String uname = tf_uname.getText().trim();
     97                 String upass = new String(pf_upass.getPassword());
     98                 int type = cb_type.getSelectedIndex() + 1;
     99                 if (uname.equals("")) {
    100                     JOptionPane.showMessageDialog(LoginView.this, "用户名不能为空");
    101                     return;
    102                 } else if (upass.equals("")) {
    103                     JOptionPane.showMessageDialog(LoginView.this, "密码不能为空");
    104                     return;
    105                 }
    106                 User user = new User(uname, upass, type);
    107                 user = userBiz.login(user);
    108                 if (user != null) {
    109                     if (user.getType() == 1) {
    110                         new UserMainView(user);
    111                     } else {
    112                         new AdminMainView(user);
    113                     }
    114                     LoginView.this.dispose();// 打开新的窗口,旧的窗口自动关闭
    115                 } else {
    116                     JOptionPane.showMessageDialog(LoginView.this, "用户名或密码出错");
    117                     return;
    118                 }
    119             }
    120         });
    121 
    122         btn_register.addActionListener(new ActionListener() {
    123 
    124             @Override
    125             public void actionPerformed(ActionEvent arg0) {
    126                 new UserRegisterView();// 弹出注册视图
    127 
    128             }
    129         });
    130 
    131     }
    132 
    133 }

     UserMainView.java

      1 package com.dvd.view;
      2 
      3 import java.awt.BorderLayout;
      4 import java.awt.Color;
      5 import java.awt.EventQueue;
      6 import java.awt.Font;
      7 import java.awt.GridLayout;
      8 import java.awt.event.ActionEvent;
      9 import java.awt.event.ActionListener;
     10 
     11 import javax.swing.BorderFactory;
     12 import javax.swing.ImageIcon;
     13 import javax.swing.JButton;
     14 import javax.swing.JDesktopPane;
     15 import javax.swing.JFrame;
     16 import javax.swing.JLabel;
     17 import javax.swing.JOptionPane;
     18 import javax.swing.JPanel;
     19 
     20 import com.dvd.entiy.User;
     21 
     22 public class UserMainView extends JFrame {
     23     private static final long serialVersionUID = -7828161836358813128L;
     24 
     25     private JPanel panel_main = null;
     26     private JPanel panel_wel = null;
     27     private JDesktopPane desktopPane = null;
     28     private JPanel panel_btn = null;
     29 
     30     private JButton btn_query_rent_dvd = null;
     31     private JButton btn_dvd_record = null;
     32     private JButton btn_exit = null;
     33 
     34     private JLabel lb_welcome = null;
     35     private JLabel desk_img = null;
     36     private User user = null;
     37 
     38     public UserMainView(User user) {
     39         this.user = user;
     40         init();
     41         registerListener(this.user);
     42 
     43     }
     44 
     45     private void init() {
     46 
     47         panel_main = new JPanel(new BorderLayout());
     48         panel_wel = new JPanel();
     49         desktopPane = new JDesktopPane();
     50         panel_btn = new JPanel(new GridLayout(7, 1, 0, 35));
     51 
     52         btn_query_rent_dvd = new JButton("DVD查询租赁操作");
     53         btn_dvd_record = new JButton("DVD租赁记录查询");
     54         btn_exit = new JButton("退出窗口");
     55         /*
     56          * 快捷功能区
     57          */
     58 
     59         panel_btn.setBorder(BorderFactory.createTitledBorder(BorderFactory.createRaisedBevelBorder(), "快捷功能区"));
     60         panel_btn.add(new JLabel());
     61         panel_btn.add(new JLabel());
     62         panel_btn.add(btn_query_rent_dvd);
     63         panel_btn.add(btn_dvd_record);
     64         panel_btn.add(btn_exit);
     65         panel_btn.add(new JLabel());
     66         panel_btn.add(new JLabel());
     67 
     68         /*
     69          * 欢迎区
     70          */
     71         lb_welcome = new JLabel("欢  迎  " + user.getUname() + " 使  用  影  碟  租  赁  管  理  系  统");
     72         lb_welcome.setFont(new Font("宋体", Font.BOLD, 23));
     73         lb_welcome.setForeground(Color.BLUE);
     74         panel_wel.add(lb_welcome);
     75         EventQueue.invokeLater(new Runnable() {
     76 
     77             @Override
     78             public void run() {
     79                 new Thread(new DynaminThread()).start();
     80 
     81             }
     82         });
     83         /*
     84          * 主面板
     85          */
     86         ImageIcon image = new ImageIcon("src/images/main.png");
     87         desk_img = new JLabel(image);
     88         desk_img.setBounds(0, 0, image.getIconWidth(), image.getIconHeight());
     89         desktopPane.add(desk_img, new Integer(Integer.MIN_VALUE));
     90 
     91         panel_main.add(panel_wel, BorderLayout.NORTH);
     92         panel_main.add(panel_btn, BorderLayout.EAST);
     93         panel_main.add(desktopPane, BorderLayout.CENTER);
     94 
     95         this.getContentPane().add(panel_main);
     96         this.setTitle("用户操作主面板");
     97         // this.setSize(1000, 650);
     98         this.pack();
     99         this.setResizable(false);
    100         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    101         this.setLocationRelativeTo(null);
    102         this.setVisible(true);
    103     }
    104 
    105     private void registerListener(User user) {
    106         btn_query_rent_dvd.addActionListener(new ActionListener() {
    107 
    108             @Override
    109             public void actionPerformed(ActionEvent e) {
    110                 UserQueryDVDRecordView qdv = new UserQueryDVDRecordView(user);
    111 
    112                 desktopPane.add(qdv);// 把指定的视图添加到时桌面容器中去
    113                 qdv.toFront();// 视图显示 的前面
    114 
    115             }
    116         });
    117         btn_dvd_record.addActionListener(new ActionListener() {
    118 
    119             @Override
    120             public void actionPerformed(ActionEvent e) {
    121                 UserQueryRentDVDView qdv = new UserQueryRentDVDView();
    122                 desktopPane.add(qdv);// 把指定的视图添加到时桌面容器中去
    123                 qdv.toFront();// 视图显示 的前面
    124 
    125             }
    126         });
    127         btn_exit.addActionListener(new ActionListener() {
    128 
    129             @Override
    130             public void actionPerformed(ActionEvent e) {
    131                 int flag = JOptionPane.showConfirmDialog(UserMainView.this, "是否确定退出窗口", "确认信息",
    132                         JOptionPane.YES_NO_OPTION);
    133                 if (flag == JOptionPane.YES_OPTION) {
    134                     System.exit(0);// 关闭窗体,并释放全部资源。
    135                     // AdminMainView.this.dispose();// 关闭窗体,释放一部分资源。
    136                 }
    137             }
    138         });
    139     }
    140 
    141     /**
    142      * 这是一个线程类,专门用来进行对欢迎Label标签进行移动
    143      * 
    144      * @author LZC
    145      *
    146      */
    147     private class DynaminThread implements Runnable {
    148 
    149         @Override
    150         public void run() {
    151             while (true) {
    152                 for (int i = 780; i > -650; i--) {
    153                     try {
    154                         Thread.sleep(10);
    155                     } catch (InterruptedException e) {
    156                         e.printStackTrace();
    157                     }
    158                     lb_welcome.setLocation(i, 5);
    159                 }
    160             }
    161 
    162         }
    163     }
    164 
    165 }

     UserQueryDVDRecordView.java

      1 package com.dvd.view;
      2 
      3 import java.awt.BorderLayout;
      4 import java.awt.GridLayout;
      5 import java.awt.event.ActionEvent;
      6 import java.awt.event.ActionListener;
      7 import java.awt.event.MouseAdapter;
      8 import java.awt.event.MouseEvent;
      9 import java.util.ArrayList;
     10 import java.util.List;
     11 
     12 import javax.swing.BorderFactory;
     13 import javax.swing.JButton;
     14 import javax.swing.JComboBox;
     15 import javax.swing.JInternalFrame;
     16 import javax.swing.JLabel;
     17 import javax.swing.JOptionPane;
     18 import javax.swing.JPanel;
     19 import javax.swing.JScrollPane;
     20 import javax.swing.JTable;
     21 import javax.swing.event.TableModelListener;
     22 import javax.swing.table.TableModel;
     23 
     24 import com.dvd.biz.DVDBiz;
     25 import com.dvd.biz.Impl.DVDBizImpl;
     26 import com.dvd.entiy.DVD;
     27 import com.dvd.entiy.User;
     28 
     29 public class UserQueryDVDRecordView extends JInternalFrame {
     30 
     31     private static final long serialVersionUID = -3558209667843105955L;
     32     private JScrollPane jScrollPane = null;// 用来保存Jtable的一个面板
     33     private JTable table = null;// 声明JTable
     34 
     35     private JPanel panelbutton = null;// 按钮面板
     36     private JButton btn_search = null;
     37     private JButton btn_rent = null;
     38     private JButton btn_exit = null;
     39     private JComboBox<String> cb_type = null;
     40     private JLabel lb_type = null;
     41 
     42     private DVDInfoTableModel infoTableModel = null;
     43     DVDBiz dvdBiz = null;
     44     List<DVD> dvdList = null;
     45     User user = null;
     46 
     47     public UserQueryDVDRecordView(User user) {
     48         this.user = user;
     49         dvdBiz = new DVDBizImpl();
     50         init();
     51         registerListener(this.user);
     52     }
     53 
     54     private void init() {
     55         this.setTitle("DVD信息查询");
     56         this.setSize(500, 450);
     57         this.setIconifiable(true);// 窗体可最小化
     58         this.setClosable(true);// 窗体可关闭
     59         this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
     60         this.setLayout(new BorderLayout());
     61 
     62         dvdList = new ArrayList<DVD>();
     63 
     64         table = new JTable();
     65 
     66         jScrollPane = new JScrollPane();// 创建面板
     67         // 给面板设置边框
     68         jScrollPane.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "查询信息"));
     69         jScrollPane.setViewportView(table);
     70         ;
     71         this.add(jScrollPane, BorderLayout.CENTER);
     72 
     73         panelbutton = new JPanel(new GridLayout(7, 1, 10, 30));
     74         // 给面板设置边框
     75         panelbutton.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "查询条件"));
     76         this.add(panelbutton, BorderLayout.EAST);
     77 
     78         refreshTable(dvdList);
     79 
     80         lb_type = new JLabel("查询类型");
     81         panelbutton.add(lb_type);
     82         cb_type = new JComboBox<String>(new String[] { "全部DVD", "可借DVD" });
     83         panelbutton.add(cb_type);
     84         btn_search = new JButton("查询");
     85         panelbutton.add(btn_search);
     86 
     87         btn_rent = new JButton("租DVD");
     88         panelbutton.add(btn_rent);
     89         btn_rent.setEnabled(false);// 默认不可用
     90 
     91         panelbutton.add(new JLabel());
     92 
     93         panelbutton.add(new JLabel());
     94 
     95         btn_exit = new JButton("退出窗口");
     96         panelbutton.add(btn_exit);
     97 
     98         this.setVisible(true);
     99     }
    100 
    101     private void registerListener(User user) {
    102         btn_rent.addActionListener(new ActionListener() {
    103 
    104             @Override
    105             public void actionPerformed(ActionEvent arg0) {
    106                 int row = table.getSelectedRow();// 得到你所选中那行的下标
    107                 int did = (int) table.getValueAt(row, 0);
    108                 // System.out.println("id编号" + did);
    109                 int flag = dvdBiz.lendDVD(did, user.getId());
    110                 // System.out.println(user.getId());
    111                 // System.out.println("flag=" + flag);
    112                 if (flag == 1) {
    113                     JOptionPane.showInternalMessageDialog(UserQueryDVDRecordView.this, "不可借,已经借出");
    114                     return;
    115                 } else if (flag == 2) {
    116                     JOptionPane.showInternalMessageDialog(UserQueryDVDRecordView.this, "成功租到DVD");
    117                     return;
    118                 } else if (flag == 3) {
    119                     JOptionPane.showInternalMessageDialog(UserQueryDVDRecordView.this, "租DVD失败");
    120                     return;
    121                 }
    122             }
    123         });
    124 
    125         table.addMouseListener(new MouseAdapter() {
    126             @Override
    127             public void mouseClicked(MouseEvent e) {
    128                 /// 假设选中一行,租DVD按钮可用
    129                 btn_rent.setEnabled(true);
    130                 int row = table.getSelectedRow();// 得到你所选中那行的下标
    131 
    132             }
    133         });
    134         /*
    135          * cb_type.addItemListener(new ItemListener() {
    136          * 
    137          * @Override public void itemStateChanged(ItemEvent e) { String item =
    138          * e.getItem().toString(); if (item.equals("可借DVD")) {
    139          * btn_rent.setEnabled(true); }
    140          * 
    141          * } });
    142          */
    143         btn_search.addActionListener(new ActionListener() {
    144 
    145             @Override
    146             public void actionPerformed(ActionEvent e) {
    147                 int index = cb_type.getSelectedIndex();
    148                 List<DVD> dvdList = new ArrayList<DVD>();
    149                 if (index == 0) {
    150                     dvdList = dvdBiz.queryAllDVDs();
    151                 } else {
    152                     dvdList = dvdBiz.canLendDVD();
    153                 }
    154                 refreshTable(dvdList);
    155                 if (dvdList.size() == 0) {
    156                     JOptionPane.showInternalMessageDialog(UserQueryDVDRecordView.this, "没有你要查询的记录!");
    157                     return;
    158                 }
    159 
    160             }
    161         });
    162 
    163         btn_exit.addActionListener(new ActionListener() {
    164 
    165             @Override
    166             public void actionPerformed(ActionEvent e) {
    167                 int flag = JOptionPane.showInternalConfirmDialog(UserQueryDVDRecordView.this, "是否确定退出?", "确认信息",
    168                         JOptionPane.YES_NO_OPTION);
    169                 if (flag == JOptionPane.YES_OPTION) {
    170                     UserQueryDVDRecordView.this.dispose();
    171                 }
    172             }
    173         });
    174 
    175     }
    176 
    177     private class DVDInfoTableModel implements TableModel {
    178         private List<DVD> dvdsList = null;
    179 
    180         private DVDInfoTableModel(List<DVD> dvdList) {
    181             this.dvdsList = dvdList;
    182         }
    183 
    184         @Override
    185         public void addTableModelListener(TableModelListener l) {
    186             // TODO 自动生成的方法存根
    187 
    188         }
    189 
    190         @Override
    191         public Class<?> getColumnClass(int columnIndex) {
    192             // TODO 自动生成的方法存根
    193             return String.class;
    194         }
    195 
    196         @Override
    197         public int getColumnCount() {
    198             // TODO 自动生成的方法存根
    199             return 4;
    200         }
    201 
    202         @Override
    203         public String getColumnName(int columnIndex) {
    204             if (columnIndex == 0) {
    205                 return "影碟ID";
    206             } else if (columnIndex == 1) {
    207                 return "影碟名字";
    208             } else if (columnIndex == 2) {
    209                 return "影碟借出次数";
    210             } else if (columnIndex == 3) {
    211                 return "影碟状态";
    212             } else {
    213                 return "出错";
    214             }
    215         }
    216 
    217         @Override
    218         public int getRowCount() {
    219             // TODO 自动生成的方法存根
    220             return dvdsList.size();
    221         }
    222 
    223         @Override
    224         public Object getValueAt(int rowIndex, int columnIndex) {
    225             DVD dvd = dvdsList.get(rowIndex);
    226             if (columnIndex == 0) {
    227                 return dvd.getId();
    228             } else if (columnIndex == 1) {
    229                 return dvd.getDname();
    230             } else if (columnIndex == 2) {
    231                 return dvd.getDcount();
    232             } else if (columnIndex == 3) {
    233                 return "" + (dvd.getStatus() == 1 ? "可借" : "已借");
    234             } else {
    235                 return "出错";
    236             }
    237         }
    238 
    239         @Override
    240         public boolean isCellEditable(int rowIndex, int columnIndex) {
    241             // TODO 自动生成的方法存根
    242             return false;
    243         }
    244 
    245         @Override
    246         public void removeTableModelListener(TableModelListener l) {
    247             // TODO 自动生成的方法存根
    248 
    249         }
    250 
    251         @Override
    252         public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
    253             // TODO 自动生成的方法存根
    254 
    255         }
    256 
    257     }
    258 
    259     // 刷新Jtable并显示数据
    260     private void refreshTable(List<DVD> dvdList) {
    261         infoTableModel = new DVDInfoTableModel(dvdList);
    262         table.setModel(infoTableModel);
    263     }
    264 }

     UserQueryRentDVDView.java

      1 package com.dvd.view;
      2 
      3 import java.awt.BorderLayout;
      4 import java.awt.GridLayout;
      5 import java.awt.event.ActionEvent;
      6 import java.awt.event.ActionListener;
      7 import java.awt.event.MouseAdapter;
      8 import java.awt.event.MouseEvent;
      9 import java.util.ArrayList;
     10 import java.util.List;
     11 
     12 import javax.swing.BorderFactory;
     13 import javax.swing.JButton;
     14 import javax.swing.JComboBox;
     15 import javax.swing.JInternalFrame;
     16 import javax.swing.JLabel;
     17 import javax.swing.JOptionPane;
     18 import javax.swing.JPanel;
     19 import javax.swing.JScrollPane;
     20 import javax.swing.JTable;
     21 import javax.swing.event.TableModelListener;
     22 import javax.swing.table.TableModel;
     23 
     24 import com.dvd.biz.DVDBiz;
     25 import com.dvd.biz.Impl.DVDBizImpl;
     26 import com.dvd.entiy.DVD;
     27 
     28 public class UserQueryRentDVDView extends JInternalFrame {
     29 
     30     private static final long serialVersionUID = -3558209667843105955L;
     31     private JScrollPane jScrollPane = null;// 用来保存Jtable的一个面板
     32     private JTable table = null;// 声明JTable
     33 
     34     private JPanel panelbutton = null;// 按钮面板
     35     private JButton btn_search = null;
     36     private JButton btn_return = null;
     37     private JButton btn_exit = null;
     38     private JComboBox<String> cb_type = null;
     39     private JLabel lb_type = null;
     40     private DVDInfoTableModel infoTableModel = null;
     41     DVDBiz dvdBiz = null;
     42 
     43     public UserQueryRentDVDView() {
     44         dvdBiz = new DVDBizImpl();
     45         init();
     46         registerListener();
     47     }
     48 
     49     private void init() {
     50         this.setTitle("DVD租赁记录查询");
     51         this.setSize(500, 450);
     52         this.setIconifiable(true);// 窗体可最小化
     53         this.setClosable(true);// 窗体可被关闭
     54         this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
     55         this.setLayout(new BorderLayout());
     56 
     57         table = new JTable();
     58         jScrollPane = new JScrollPane();// 创建面板
     59         // 给面板设置边框
     60         jScrollPane
     61                 .setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "本人租赁记录查询 "));
     62         jScrollPane.setViewportView(table);
     63         this.add(jScrollPane, BorderLayout.CENTER);
     64 
     65         panelbutton = new JPanel(new GridLayout(7, 1, 10, 30));
     66         // 给面板设置边框
     67         panelbutton.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(null, null), "查询条件"));
     68         this.add(panelbutton, BorderLayout.EAST);
     69         lb_type = new JLabel("查询类型");
     70         panelbutton.add(lb_type);
     71         cb_type = new JComboBox<String>(new String[] { "全部DVD", "未还DVD" });
     72         panelbutton.add(cb_type);
     73 
     74         btn_search = new JButton("查询");
     75         panelbutton.add(btn_search);
     76 
     77         btn_return = new JButton("还DVD");
     78         panelbutton.add(btn_return);
     79         btn_return.setEnabled(false);// 默认不可用
     80 
     81         panelbutton.add(new JLabel());
     82 
     83         panelbutton.add(new JLabel());
     84 
     85         btn_exit = new JButton("退出窗口");
     86         panelbutton.add(btn_exit);
     87 
     88         this.setVisible(true);
     89     }
     90 
     91     private void registerListener() {
     92         btn_return.addActionListener(new ActionListener() {
     93 
     94             @Override
     95             public void actionPerformed(ActionEvent e) {
     96                 int row = table.getSelectedRow();// 得到你所选中那行的下标
     97                 int rid = (int) table.getValueAt(row, 0);
     98                 // System.out.println(rid);
     99                 int flag = dvdBiz.returnDVD(rid);
    100                 System.out.println(flag);
    101                 if (flag == 1) {
    102                     JOptionPane.showInternalMessageDialog(UserQueryRentDVDView.this, "DVD已经归还");
    103                     return;
    104                 } else if (flag == 2) {
    105                     JOptionPane.showInternalMessageDialog(UserQueryRentDVDView.this, "DVD已经归还");
    106                     return;
    107                 } else if (flag == 3) {
    108                     JOptionPane.showInternalMessageDialog(UserQueryRentDVDView.this, "归还成功");
    109                     return;
    110                 } else if (flag == 4) {
    111                     JOptionPane.showInternalMessageDialog(UserQueryRentDVDView.this, "归还失败");
    112                     return;
    113                 }
    114             }
    115         });
    116         table.addMouseListener(new MouseAdapter() {
    117             @Override
    118             public void mouseClicked(MouseEvent e) {
    119                 /// 假设选中一行,还DVD按钮可用
    120                 btn_return.setEnabled(true);
    121 
    122             }
    123         });
    124 
    125         btn_search.addActionListener(new ActionListener() {
    126 
    127             @Override
    128             public void actionPerformed(ActionEvent e) {
    129                 int index = cb_type.getSelectedIndex();
    130                 List<DVD> dvdList = new ArrayList<DVD>();
    131                 if (index == 0) {
    132                     dvdList = dvdBiz.queryAllDVDs();
    133                 } else {
    134                     dvdList = dvdBiz.hasLendedDvD();
    135                 }
    136                 refreshTable(dvdList);
    137                 if (dvdList.size() == 0) {
    138                     JOptionPane.showInternalMessageDialog(UserQueryRentDVDView.this, "没有你要查询的记录!");
    139                     return;
    140                 }
    141 
    142             }
    143         });
    144         btn_exit.addActionListener(new ActionListener() {
    145 
    146             @Override
    147             public void actionPerformed(ActionEvent e) {
    148                 int flag = JOptionPane.showInternalConfirmDialog(UserQueryRentDVDView.this, "是否确定退出?", "确认信息",
    149                         JOptionPane.YES_NO_OPTION);
    150                 if (flag == JOptionPane.YES_OPTION) {
    151                     UserQueryRentDVDView.this.dispose();
    152                 }
    153             }
    154         });
    155     }
    156 
    157     private class DVDInfoTableModel implements TableModel {
    158         private List<DVD> dvdsList = null;
    159 
    160         private DVDInfoTableModel(List<DVD> dvdList) {
    161             this.dvdsList = dvdList;
    162         }
    163 
    164         @Override
    165         public void addTableModelListener(TableModelListener l) {
    166             // TODO 自动生成的方法存根
    167 
    168         }
    169 
    170         @Override
    171         public Class<?> getColumnClass(int columnIndex) {
    172             // TODO 自动生成的方法存根
    173             return String.class;
    174         }
    175 
    176         @Override
    177         public int getColumnCount() {
    178             // TODO 自动生成的方法存根
    179             return 4;
    180         }
    181 
    182         @Override
    183         public String getColumnName(int columnIndex) {
    184             if (columnIndex == 0) {
    185                 return "影碟ID";
    186             } else if (columnIndex == 1) {
    187                 return "影碟名字";
    188             } else if (columnIndex == 2) {
    189                 return "影碟借出次数";
    190             } else if (columnIndex == 3) {
    191                 return "影碟状态";
    192             } else {
    193                 return "出错";
    194             }
    195         }
    196 
    197         @Override
    198         public int getRowCount() {
    199             // TODO 自动生成的方法存根
    200             return dvdsList.size();
    201         }
    202 
    203         @Override
    204         public Object getValueAt(int rowIndex, int columnIndex) {
    205             DVD dvd = dvdsList.get(rowIndex);
    206             if (columnIndex == 0) {
    207                 return dvd.getId();
    208             } else if (columnIndex == 1) {
    209                 return dvd.getDname();
    210             } else if (columnIndex == 2) {
    211                 return dvd.getDcount();
    212             } else if (columnIndex == 3) {
    213                 return "" + (dvd.getStatus() == 1 ? "可借" : "已借");
    214             } else {
    215                 return "出错";
    216             }
    217         }
    218 
    219         @Override
    220         public boolean isCellEditable(int rowIndex, int columnIndex) {
    221             // TODO 自动生成的方法存根
    222             return false;
    223         }
    224 
    225         @Override
    226         public void removeTableModelListener(TableModelListener l) {
    227             // TODO 自动生成的方法存根
    228 
    229         }
    230 
    231         @Override
    232         public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
    233             // TODO 自动生成的方法存根
    234 
    235         }
    236 
    237     }
    238 
    239     // 刷新Jtable并显示数据
    240     private void refreshTable(List<DVD> dvdList) {
    241         infoTableModel = new DVDInfoTableModel(dvdList);
    242         table.setModel(infoTableModel);
    243     }
    244 
    245 }
    246 // UserQueryRentDVDView

     UserRegisterView.java

      1 package com.dvd.view;
      2 
      3 import java.awt.Font;
      4 import java.awt.GridLayout;
      5 import java.awt.event.ActionEvent;
      6 import java.awt.event.ActionListener;
      7 
      8 import javax.swing.JButton;
      9 import javax.swing.JFrame;
     10 import javax.swing.JLabel;
     11 import javax.swing.JOptionPane;
     12 import javax.swing.JPanel;
     13 import javax.swing.JPasswordField;
     14 import javax.swing.JTextField;
     15 
     16 import com.dvd.biz.UserBiz;
     17 import com.dvd.biz.Impl.UserBizImpl;
     18 import com.dvd.dao.UserDao;
     19 import com.dvd.dao.impl.UserDaoImpl;
     20 import com.dvd.entiy.User;
     21 
     22 public class UserRegisterView extends JFrame {
     23     private static final long serialVersionUID = 7893951512570101893L;
     24     private JPanel panel_main = null;
     25     private JPanel panel01 = null;
     26     private JPanel panel02 = null;
     27     private JPanel panel03 = null;
     28     private JPanel panel04 = null;
     29     private JPanel panel05 = null;
     30 
     31     private JLabel lb_name = null;
     32     private JLabel lb_init_upass = null;
     33     private JLabel lb_confirm_upass = null;
     34 
     35     private JTextField tf_name = null;
     36     private JPasswordField pf_init_upass = null;
     37     private JPasswordField pf_confirm_upass = null;
     38 
     39     private JButton btn_confirm = null;
     40     private JButton btn_back = null;
     41 
     42     UserDao userDao = null;
     43     UserBiz userBiz = null;
     44 
     45     public UserRegisterView() {
     46         userDao = new UserDaoImpl();
     47         userBiz = new UserBizImpl();
     48         init();
     49         registerListener();
     50     }
     51 
     52     private void init() {
     53         this.setSize(450, 260);
     54         this.setResizable(false);
     55         this.setLocationRelativeTo(null);// 窗口在中间打开
     56         this.setTitle("用户注册窗口");
     57         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     58         panel_main = new JPanel(new GridLayout(5, 1));
     59         JPanel panel01 = new JPanel();
     60         JPanel panel02 = new JPanel();
     61         JPanel panel03 = new JPanel();
     62         JPanel panel04 = new JPanel();
     63         JPanel panel05 = new JPanel();
     64 
     65         lb_name = new JLabel("用户名");
     66         lb_name.setFont(new Font("宋体", Font.BOLD, 15));
     67         lb_init_upass = new JLabel("初始化密码");
     68         lb_init_upass.setFont(new Font("宋体", Font.BOLD, 15));
     69         lb_confirm_upass = new JLabel("确认密码");
     70         lb_confirm_upass.setFont(new Font("宋体", Font.BOLD, 15));
     71 
     72         tf_name = new JTextField(15);
     73         pf_init_upass = new JPasswordField(15);
     74         pf_confirm_upass = new JPasswordField(15);
     75 
     76         btn_confirm = new JButton("确认提交");
     77         btn_back = new JButton("退出");
     78 
     79         panel02.add(lb_name);
     80         panel02.add(tf_name);
     81         panel03.add(lb_init_upass);
     82         panel03.add(pf_init_upass);
     83         panel04.add(lb_confirm_upass);
     84         panel04.add(pf_confirm_upass);
     85         panel05.add(btn_confirm);
     86         panel05.add(btn_back);
     87 
     88         panel_main.add(panel01);
     89         panel_main.add(panel02);
     90         panel_main.add(panel03);
     91         panel_main.add(panel04);
     92         panel_main.add(panel05);
     93 
     94         this.getContentPane().add(panel_main);
     95 
     96         this.getRootPane().setDefaultButton(btn_confirm);// 默认获得焦点的按钮
     97         this.setVisible(true);
     98 
     99     }
    100 
    101     private void registerListener() {
    102         // 退出按钮
    103         btn_back.addActionListener(new ActionListener() {
    104 
    105             @Override
    106             public void actionPerformed(ActionEvent e) {
    107                 // int flag =
    108                 // JOptionPane.showInternalConfirmDialog(UserRegisterView.this,
    109                 // "是否退出注册?", "退出信息",
    110                 // JOptionPane.YES_NO_OPTION);
    111                 int flag = JOptionPane.showConfirmDialog(UserRegisterView.this, "是否退出注册?", "确认信息",
    112                         JOptionPane.YES_NO_OPTION);
    113                 if (flag == JOptionPane.YES_OPTION) {
    114                     UserRegisterView.this.dispose();// 窗口自动关闭
    115                 }
    116             }
    117         });
    118         // 注册按钮
    119         btn_confirm.addActionListener(new ActionListener() {
    120 
    121             @Override
    122             public void actionPerformed(ActionEvent e) {
    123                 String uname = tf_name.getText();
    124                 String init_upass = new String(pf_init_upass.getPassword());
    125                 String upass = new String(pf_confirm_upass.getPassword());
    126                 if (uname.equals("")) {
    127                     JOptionPane.showMessageDialog(UserRegisterView.this, "用户名不能为空");
    128                     return;
    129                 } else if (init_upass.equals("")) {
    130                     JOptionPane.showMessageDialog(UserRegisterView.this, "初始化密码不能为空");
    131                     return;
    132                 } else if (upass.equals("")) {
    133                     JOptionPane.showMessageDialog(UserRegisterView.this, "确认密码不能为空");
    134                     return;
    135                 }
    136                 User user = new User(uname, upass, 1);
    137 
    138                 int flag = userBiz.registerUser(user);
    139                 if (flag == 1) {
    140                     JOptionPane.showMessageDialog(UserRegisterView.this, "用户名已存在");
    141                     return;
    142                 } else if (flag == 2) {
    143                     JOptionPane.showMessageDialog(UserRegisterView.this, "注册成功");
    144                     return;
    145                 } else if (flag == 3) {
    146                     JOptionPane.showMessageDialog(UserRegisterView.this, "注册失败");
    147                     return;
    148                 }
    149             }
    150         });
    151 
    152     }
    153 
    154 }

    TestLogin.java

    1 package com.dvd.text;
    2 
    3 import com.dvd.view.LoginView;
    4 
    5 public class TestLogin {
    6     public static void main(String[] args) {
    7         new LoginView();
    8     }
    9 }

     看了那么多代码,来看看运行怎么样

     最后就是红色这里还没完善,有待更新

  • 相关阅读:
    java-scanner
    java-hashmap
    单点故障和脑裂
    Client将数据读写HDFS流程
    Zookeeper的作用,在Hadoop及hbase中具体作用
    hadoop 管理命令dfsadmin
    如何确定 Hadoop map和reduce的个数--map和reduce数量之间的关系是什么?
    Spark 数据倾斜
    zookeeper选举
    hive安装详解
  • 原文地址:https://www.cnblogs.com/limn/p/7405485.html
Copyright © 2020-2023  润新知