实验四 图书借阅管理系统功能设计与实现
package com.bbm.view;
import javax.swing.*;
import com.bbm.db.BookDao;
import java.awt.event.*;
import java.awt.*;
@SuppressWarnings("serial")
public class BookAdd extends JFrame {
private JLabel isbnJL,typeJL,booknameJL,autherJL,productJL,dateJL,idJL,priceJL;
private JPanel northJP,southJP;
private JTextField isbnJTF,booknameJTF,autherJTF,productJTF,dateJTF,idJTF,priceJTF;
private JComboBox jcb;
private JButton addJB,resiteJB,closeJB;
BookAdd(){
northJP=new JPanel();
southJP=new JPanel();
northJP.setLayout(new GridLayout(4,4));
isbnJL=new JLabel("ISBN");
isbnJL.setHorizontalAlignment(SwingConstants.CENTER);
northJP.add(isbnJL);
isbnJTF=new JTextField();
isbnJTF.setColumns(15);
northJP.add(isbnJTF);
typeJL=new JLabel("类别");
typeJL.setHorizontalAlignment(SwingConstants.CENTER);
northJP.add(typeJL);
jcb=new JComboBox();
jcb.addItem("计算机");
jcb.addItem("java");
jcb.addItem("数据结构");
northJP.add(jcb);
booknameJL=new JLabel("书名");
booknameJL.setHorizontalAlignment(SwingConstants.CENTER);
northJP.add(booknameJL);
booknameJTF=new JTextField();
booknameJTF.setColumns(15);
northJP.add(booknameJTF);
autherJL=new JLabel("作者");
autherJL.setHorizontalAlignment(SwingConstants.CENTER);
northJP.add(autherJL);
autherJTF=new JTextField();
autherJTF.setColumns(15);
northJP.add(autherJTF);
productJL=new JLabel("出版社");
productJL.setHorizontalAlignment(SwingConstants.CENTER);
northJP.add(productJL);
productJTF=new JTextField();
productJTF.setColumns(15);
northJP.add(productJTF);
dateJL=new JLabel("出版日期");
dateJL.setHorizontalAlignment(SwingConstants.CENTER);
northJP.add(dateJL);
dateJTF=new JTextField();
northJP.add(dateJTF);
idJL=new JLabel("版次");
idJL.setHorizontalAlignment(SwingConstants.CENTER);
northJP.add(idJL);
idJTF=new JTextField();
idJTF.setColumns(15);
northJP.add(idJTF);
priceJL=new JLabel("定价");
priceJL.setHorizontalAlignment(SwingConstants.CENTER);
northJP.add(priceJL);
priceJTF=new JTextField();
priceJTF.setColumns(15);
northJP.add(priceJTF);
addJB=new JButton();
addJB.setText("添加");
addJB.addActionListener(new addAction());
southJP.add(addJB);
resiteJB=new JButton();
resiteJB.setText("重置");
resiteJB.addMouseListener(new resiteAction());
southJP.add(resiteJB);
closeJB=new JButton();
closeJB.setText("关闭");
closeJB.addMouseListener(new closeAction());
southJP.add(closeJB);
this.add(northJP,BorderLayout.CENTER);
this.add(southJP,BorderLayout.SOUTH);
this.setVisible(true);
setTitle("图书信息添加");
setResizable(false);
this.setBounds(15, 15,600, 200);
}
class addAction implements ActionListener
{
public void actionPerformed(ActionEvent e) {
String i=isbnJL.getText().trim();
String name=booknameJTF.getText().trim();
String a=autherJTF.getText().trim();
String m=idJTF.getText().trim();
String p=priceJTF.getText().trim();
if (name.length()==0){
JOptionPane.showMessageDialog(null,"书名不能为空");
BookAdd.this.setVisible(false);
}if (a.length()==0){
JOptionPane.showMessageDialog(null,"作者不能为空");
BookAdd.this.setVisible(false);
}if (m.length()==0){
JOptionPane.showMessageDialog(null,"出版社不能为空");
BookAdd.this.setVisible(false);
}if (p.length()==0){
JOptionPane.showMessageDialog(null,"定价不能为空");
BookAdd.this.setVisible(false);
}if (i.length()<=13){
JOptionPane.showMessageDialog(null,"请输入13位ISBN码");
BookAdd.this.setVisible(false);
}else if(i.length()==13){
String isbn=isbnJTF.getText().trim();
String typename=(String) jcb.getSelectedItem();
String bookname=booknameJTF.getText().trim();
String author=autherJTF.getText().trim();
String press=productJTF.getText().trim();
String date=dateJTF.getText().trim();
String edition=idJTF.getText().trim();
Double price=Double.parseDouble(priceJTF.getText().trim());
int j=BookDao.insertBook(isbn, typename, bookname, author, press, date, edition, price);
if(j>0){
JOptionPane.showMessageDialog(null,"添加成功");
BookAdd.this.setVisible(false);
}
}
}
}
class resiteAction extends MouseAdapter
{
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
super.mouseClicked(e);
if(e.getSource()==resiteJB){
isbnJTF.setText("");
jcb.setSelectedItem("计算机");
autherJTF.setText("");
productJTF.setText("");
idJTF.setText("");
dateJTF.setText("");
priceJTF.setText("");
booknameJTF.setText("");
}
}
}
class closeAction extends MouseAdapter
{
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
BookAdd.this.setVisible(false);
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new BookAdd();
}
}
package com.bbm.view;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Toolkit;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import com.bbm.model.Users;
import com.bbm.db.*;
/*登录窗体*/
public class Login extends JFrame{
private static final long serialVersionUID = 1L;
private JPanel textJP,loginJP,buttonJP;
private Font f1=new Font("黑体", Font.BOLD, 32);
private JLabel textJL,usernameJL,passwordJL;
private JTextField usernameJTF;
private JPasswordField pwdJPF;
private JButton confirmJB,resetJB;
private static Users user;
public Login(){
setSize(260,180);
//在整个界面的中间位置显示
int width=Toolkit.getDefaultToolkit().getScreenSize().width;
int height=Toolkit.getDefaultToolkit().getScreenSize().height;
this.setLocation(width/2-200, height/2-150);
setTitle("图书借阅系统登录界面");
textJP=new JPanel();//提示信息面板
loginJP=new JPanel();//登录信息面板
buttonJP=new JPanel();//登录取消按钮面板
//提示信息面板
textJL=new JLabel();
textJL.setFont(f1);
textJL.setText("图书借阅系统");
textJP.add(textJL);
this.add(textJP,BorderLayout.NORTH);
//登录信息面板设计
loginJP.setLayout(new GridLayout(2,2));
usernameJL=new JLabel("用户名:");
usernameJL.setHorizontalAlignment(SwingConstants.CENTER);
usernameJTF=new JTextField();
passwordJL=new JLabel("密 码:");
passwordJL.setHorizontalAlignment(SwingConstants.CENTER);
pwdJPF=new JPasswordField();
loginJP.add(usernameJL);
loginJP.add(usernameJTF);
loginJP.add(passwordJL);
loginJP.add(pwdJPF);
//登录取消按钮面板设计
confirmJB=new JButton("登录");
confirmJB.addActionListener(new LoginAction());
resetJB=new JButton("重置");
resetJB.addActionListener(new ResetAction());
buttonJP.add(confirmJB);
buttonJP.add(resetJB);
this.add(loginJP,BorderLayout.CENTER);
this.add(buttonJP,BorderLayout.SOUTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时,退出程序
this.setVisible(true);//设置窗体显示,否则不显示。
setResizable(false);//取消最大化
}
public static void setUser(Users user) {
Login.user = user;
}
public static Users getUser() {
return user;
}
class LoginAction implements ActionListener{
public void actionPerformed(ActionEvent e){
if(!"".equals(usernameJTF.getText())&&!"".equals(new String(pwdJPF.getPassword()))){
user=UserDao.check(usernameJTF.getText(),new String(pwdJPF.getPassword()));
if(user.getName()!=null){
try {
Library frame=new Library();
frame.setVisible(true);
Login.this.setVisible(false);
} catch (Exception e1) {
e1.printStackTrace();
}
}else{
JOptionPane.showMessageDialog(null, "您输入的用户名或密码错误,不能登陆");
usernameJTF.setText("");
pwdJPF.setText("");
}
}else{
JOptionPane.showMessageDialog(null, "请输入用户名和密码!");
}
}
}
class ResetAction implements ActionListener{
public void actionPerformed(final ActionEvent e){
usernameJTF.setText("");
pwdJPF.setText("");
}
}
public static void main(String[] args) {
new Login();
}
}