课程设计——小型图书管理系统中遇到的问题
2012-06-25 20:56
721 查看
为期两周的课程设计中,我选的课题是小型图书管理系统,该系统有如下功能:
用户登陆和注册、用户信息查看(个人信息,图书借阅情况,到期归还提醒,个人读书笔记管理,个人读书计划管理)
在编写程序的过程中,遇到了如下的问题:
1、两个不同的操作如何实现同一个接口
在程序中有一个键盘事件,就是判断文本框中输入日期时按照统一的格式自动添加“-”,如2012-09-09,如果只有一个文本框的话,那么简单,直接注册一个键盘事件监听器就能故解决,但是同时从在两个文本框的话,同一个键盘事件显然不能处理两个文本框的内容。
这时候可以利用内部类,来实现同一个接口,响应不同的事件源。
2、窗口执行addWindowListener之后自动关闭的问题
我使用如下方法关闭窗口
3、如何把char型的数字转换成INT型
char型和int型之间没有直接的转换方式,只能先把char型转换成string,然后再把string转换成int
4、关于substring(start,end)方法的问题
substring(start,end)方法是获取从start开始到end结束,但是不包括end的字符串,我们很多情况下都会忽略,以为获取的字符串中也有end字符。
5、关于calendar类
在进行时间处理时,calendar是少不了的。但是对于calendar有一些需要注意的问题:
用calendar获取的月份要+1
用calendar获取的星期要-1
将calendar翻到某个时间是,月份要-1
6、listSelectionListener的问题
listSelectionListener的事件valueChanged(LiseSelectionEvent e){}方法,在函数选中是,时间会执行两次,分别是鼠标单击和鼠标释放,很多人都会忽略这个问题,在编写程序中,这两次执行,往往会导致漏洞,我们可以利用getValueIsAdjusting()获得的值来区分,如果为true,是鼠标按下,如果为false,是鼠标离开。
用户登陆和注册、用户信息查看(个人信息,图书借阅情况,到期归还提醒,个人读书笔记管理,个人读书计划管理)
在编写程序的过程中,遇到了如下的问题:
1、两个不同的操作如何实现同一个接口
在程序中有一个键盘事件,就是判断文本框中输入日期时按照统一的格式自动添加“-”,如2012-09-09,如果只有一个文本框的话,那么简单,直接注册一个键盘事件监听器就能故解决,但是同时从在两个文本框的话,同一个键盘事件显然不能处理两个文本框的内容。
txtStartTime.addKeyListener(this); txtEndTime.addKeyListener(this); public void keyReleased(KeyEvent e){ if(e.getKeyCode()!=e.VK_BACK_SPACE){ if(txtStartTime.getText().length()==4|| txtStartTime.getText().length()==7){ txtStartTime.setText(txtStartTime.getText()+"-"); } } } public void keyPressed(KeyEvent e){ } public void keyTyped(KeyEvent e){ if(txtStartTime.getText().length()>=10) txtStartTime.setText(txtStartTime.getText().substring(0,9)); }这样显然不行,当在第二个文本框中操作时,仍然更改的是第一个文本框中内容。
这时候可以利用内部类,来实现同一个接口,响应不同的事件源。
txtStartTime.addKeyListener(new StartTimeClass()); txtEndTime.addKeyListener(new EndTimeClass()); class StartTimeClass implements KeyListener{ /* * (non-Javadoc) * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent) */ @SuppressWarnings("static-access") public void keyReleased(KeyEvent e){ if(e.getKeyCode()!=e.VK_BACK_SPACE){ if(txtStartTime.getText().length()==4|| txtStartTime.getText().length()==7){ txtStartTime.setText(txtStartTime.getText()+"-"); } } } public void keyPressed(KeyEvent e){ } public void keyTyped(KeyEvent e){ if(txtStartTime.getText().length()>=10) txtStartTime.setText(txtStartTime.getText().substring(0,9)); } } class EndTimeClass implements KeyListener{ /* * (non-Javadoc) * @see java.awt.event.KeyListener#keyReleased(java.awt.event.KeyEvent) */ @SuppressWarnings("static-access") public void keyReleased(KeyEvent e){ if(e.getKeyCode()!=e.VK_BACK_SPACE){ if(txtEndTime.getText().length()==4|| txtEndTime.getText().length()==7){ txtEndTime.setText(txtEndTime.getText()+"-"); } } } public void keyPressed(KeyEvent e){ } public void keyTyped(KeyEvent e){ if(txtEndTime.getText().length()>=10) txtEndTime.setText(txtEndTime.getText().substring(0,9)); } }
2、窗口执行addWindowListener之后自动关闭的问题
我使用如下方法关闭窗口
addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ int result=JOptionPane.showConfirmDialog(null, "您确定离开?","系统消息提示", JOptionPane.YES_NO_OPTION); if(result==JOptionPane.YES_OPTION){ dispose(); new UserGUI(USERNAME); }else{ //do nothing } } });这种情况下不管你单击“是”还是“否”,系统都会关闭窗口。一直没有想明白原因,后来发现,原来setDefaultCloseOperation()的默认属性是close,这样,用户在窗体上发起close是就默认关闭了,只要把它的属性改成DO_NOTHING_ON_CLOSE就可以了。
3、如何把char型的数字转换成INT型
char型和int型之间没有直接的转换方式,只能先把char型转换成string,然后再把string转换成int
4、关于substring(start,end)方法的问题
substring(start,end)方法是获取从start开始到end结束,但是不包括end的字符串,我们很多情况下都会忽略,以为获取的字符串中也有end字符。
5、关于calendar类
在进行时间处理时,calendar是少不了的。但是对于calendar有一些需要注意的问题:
用calendar获取的月份要+1
用calendar获取的星期要-1
将calendar翻到某个时间是,月份要-1
6、listSelectionListener的问题
listSelectionListener的事件valueChanged(LiseSelectionEvent e){}方法,在函数选中是,时间会执行两次,分别是鼠标单击和鼠标释放,很多人都会忽略这个问题,在编写程序中,这两次执行,往往会导致漏洞,我们可以利用getValueIsAdjusting()获得的值来区分,如果为true,是鼠标按下,如果为false,是鼠标离开。
public void valueChanged(ListSelectionEvent e){ if(e.getValueIsAdjusting()==true){ }else{ i=table.getSelectedRow(); outputData(); } }7、关于JTable的问题,这个需要专门讨论,这里只是标记一下。
相关文章推荐
- 课程设计“招生管理系统”中遇到的问题
- 课程设计--图书管理系统
- 课程设计---图书登记管理系统
- 数据结构课程设计图书管理系统
- C语言课程设计—图书管理系统
- C语言课程设计—图书管理系统
- 课程设计之图书管理系统
- 课程设计(图书信息管理系统)
- 课程设计——图书管理系统
- 图书管理系统(c语言课程设计)
- 课程设计--图书信息管理系统(C语言)
- C语言课程设计—图书管理系统
- 基于VC++6.0系统设计一个小型的信息管理应用程序。如航空订票系统、学生管理系统、图书管理系统,学生自选的项目等。
- 用C#实现一个简单的图书管理系统(课程设计)
- 数据结构课程设计——图书信息管理系统设计
- 课程设计-图书信息管理系统
- 课程设计---图书登记管理系统
- C语言课程设计-图书管理系统
- 课程设计:图书管理系统
- 数据结构课程设计-图书管理开发系统