小棒组合第十四周项目总结
小棒组合第十四周项目总结
项目名称
- 图书管理系统
本周项目内容
- 登录模块设计
- 图书信息管理
项目进展
登录模块设计
- 登录模块实现过程
- 在
BookLoginIFrame
类构造整体布局,添加按钮public BookLoginIFrame() { super(); final BorderLayout borderLayout = new BorderLayout(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); borderLayout.setVgap(10); getContentPane().setLayout(borderLayout); setTitle("图书馆管理系统登录"); setBounds(100, 100, 285, 194); final JPanel panel_2 = new JPanel(); final GridLayout gridLayout = new GridLayout(0, 2); gridLayout.setHgap(5); gridLayout.setVgap(20); panel_2.setLayout(gridLayout); final JLabel label = new JLabel(); label.setHorizontalAlignment(SwingConstants.CENTER); label.setPreferredSize(new Dimension(0, 0)); label.setMinimumSize(new Dimension(0, 0)); panel_2.add(label); label.setText("用 户 名:"); username = new JTextField(20); panel_2.add(username); final JLabel label_1 = new JLabel(); label_1.setHorizontalAlignment(SwingConstants.CENTER); panel_2.add(label_1); label_1.setText("密 码:"); password = new JPasswordField(20); password.setEchoChar('*');//设置密码框的回显字符 panel_2.add(password); final JPanel panel_1 = new JPanel(); panel.add(panel_1, BorderLayout.SOUTH); login=new JButton(); login.addActionListener(new BookLoginAction()); login.setText("登录"); panel_1.add(login); reset=new JButton(); reset.addActionListener(new BookResetAction()); reset.setText("重置"); panel_1.add(reset); final JLabel tupianLabel = new JLabel(); ImageIcon loginIcon=CreatecdIcon.add("login.jpg"); tupianLabel.setIcon(loginIcon); setVisible(true); }
2.创建JavaBean
类命名成员变量
```
public class Operater {
private String id;
private String name;
private String grade;
private String password;
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
```
- 在
BookLoginlIFrame
中对Operater
变量创建set()
与get()
方法 - 监听窗口中的“登录”与“重置”按钮。待用户输入用户名和密码后,调用Dao方法
user = Dao.check(username.getText(),password.getText())
- 登录成功
图书信息管理模块设计
- 图书信息管理模块主要包括图书信息添加、图书信息修改两个功能
图书信息添加
- 创建图书信息添加窗体
-
publisher = new JComboBox(); String[]array=new String[]{"***出版社","**信息出版社","**大型出版社","***小型出版社"}; publisher.setModel(new DefaultComboBoxModel(array)); //初始化日期格式 SimpleDateFormat myfmt=new SimpleDateFormat("yyyy-MM-dd"); pubDate= new JFormattedTextField(myfmt.getDateInstance()); pubDate.setValue(new java.util.Date()); price= new JTextField(); price.setDocument(new MyDocument(5)); price.addKeyListener(new NumberListener()); buttonadd= new JButton();//添加监听按钮 buttonadd.addActionListener(new addBookActionListener()); //初始化背景 ImageIcon bookAddIcon=CreatecdIcon.add("newBookorderImg.jpg"); label_5.setIcon(bookAddIcon); setVisible(true); // 显示窗体可关闭---必须在添加所有控件之后执行该语句 }
- 在图书信息添加窗体中添加按钮监听事件,调用Dao类编辑
actionPerformed()
方法 - 控制图书条形码文本框只能输入数字字符串的键盘监听,在
BookAddIFrame
中KeyTyped()
方法 - 监听“关闭”按钮
图书信息修改
- 设置布局
public BookModiAndDelIFrame() {
super();
final JButton button = new JButton();
button.addActionListener(new addBookActionListener());
final JButton button_1 = new JButton();
button_1.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
doDefaultCloseAction();
}
});
final JLabel headLogo = new JLabel();
ImageIcon bookModiAndDelIcon=CreatecdIcon.add("bookmodify.jpg");
headLogo.setIcon(bookModiAndDelIcon);
Object[][] results=getFileStates(Dao.selectBookInfo());
columnNames = new String[]{"图书编号", "图书类别", "图书名称", "作者", "译者", "出版商", "出版日期",
"价格"};
table = new JTable(results,columnNames);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
//鼠标单击表格中的内容产生事件,将表格中的内容放入文本框中
table.addMouseListener(new TableListener());
setVisible(true);
}
- 初始化窗体表格组建
- 监听“修改”按钮添加按钮监听事件
与计划相符情况
项目遇到瓶颈,数据库几乎只知皮毛的我们无法在窗体的基础上完美衔接。
成员贡献
- 20145337马 月 调试图书信息管理模块代码 撰写博客
- 20145329吉东云 调试登录模块代码
- 20145308刘昊阳 学习相关资料
工程截图
代码托管截图
总结
- 项目进展到后期遇到的重重困难,虽然这两部分并没有完全实现,但我们会努力在项目结束前解决问题,继续努力的!