Java项目案例分析 第五章 学生成绩管理系统
                 	
                        发表在Java图书答疑
                        2015-01-20                                                
                    		
                                                                            	
                        
                        
                    
                    
                    	是否精华
                    	是
                    	否
                    
                    
                    
                            版块置顶:
                            是
                            否
                        
                    
                        设置时间:
                        非永久
                        永久            
                    
                    
                           起始时间:
                           结束时间:
                        
                    
                        是否扣分:
                        是
                        否
                    
                    
                    
                    
                
                                           第五章 学生成绩管理系统
期中 书本第207页 第7小节
对学生数据进行存盘的操作
报错
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: empty String
应该是
float grade;
grade = Float.parseFloat(String.valueOf(jTable2.getValueAt(i, 4)));
object[i].setGrade(grade);
部分有误 请问如何修改
                
        	
        
        
    期中 书本第207页 第7小节
对学生数据进行存盘的操作
报错
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: empty String
应该是
float grade;
grade = Float.parseFloat(String.valueOf(jTable2.getValueAt(i, 4)));
object[i].setGrade(grade);
部分有误 请问如何修改
精彩评论 14
            2015-01-20
                   
                   
                   
                            
                            板凳
                        
   
                   
                                                             Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: empty String
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1011)
at java.lang.Float.parseFloat(Float.java:452)
at appstu.view.JF_view_gradesub.jBsave_actionPerformed(JF_view_gradesub.java:249)
at appstu.view.JF_view_gradesub_jBsave_actionAdapter.actionPerformed(JF_view_gradesub.java:412)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
                    
                
                
            at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1011)
at java.lang.Float.parseFloat(Float.java:452)
at appstu.view.JF_view_gradesub.jBsave_actionPerformed(JF_view_gradesub.java:249)
at appstu.view.JF_view_gradesub_jBsave_actionAdapter.actionPerformed(JF_view_gradesub.java:412)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2719)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
2015-01-21
                   
                   
                   
                        5L
                    
   
                   
                                                             [FIELDSET][LEGEND]引自:3楼[/LEGEND]
JF_view_gradesub这个类调用jBsave_actionPerformed()方法对学生考试成绩存盘的时候,有空白的内容,所以会抛出这个异常。
这个程序没有优化好,录入学生成绩的时候,需要把学生编号、学生姓名、考试类别三个栏位全部填满,否则就会抛出这个异常。
[/FIELDSET]
回复:
  
填满之后还出现了
错误信息为:违反了 PRIMARY KEY 约束 'PK_tb_gradeinfo_sub'。不能在对象 'dbo.tb_gradeinfo_sub' 中插入重复键。错误
                
            JF_view_gradesub这个类调用jBsave_actionPerformed()方法对学生考试成绩存盘的时候,有空白的内容,所以会抛出这个异常。
这个程序没有优化好,录入学生成绩的时候,需要把学生编号、学生姓名、考试类别三个栏位全部填满,否则就会抛出这个异常。
[/FIELDSET]
回复:
填满之后还出现了
错误信息为:违反了 PRIMARY KEY 约束 'PK_tb_gradeinfo_sub'。不能在对象 'dbo.tb_gradeinfo_sub' 中插入重复键。错误
2015-01-22
                   
                   
                   
                        8L
                    
   
                   
                                                             我们研究了一下,其实这个问题并不是代码的bug,而是Java的JTable组件功能不健全造成的。我们向表格输入信息之后,要把焦点,也就是光标离开这个单元格,这时候用getValueAt()才能取到我们输入的值。如果我们输入完成绩之后直接点存库按钮,虽然最后一个一门课程我们填了成绩,但是焦点没有离开,取到的值就是空字符串,转成数字类型就会抛出上述异常。
我们可以采用这种方法解决此问题:
在JF_view_gradesub.java类中的JBsave_actionPerformed()方法第一行添加这样一句话:
JBsave_actionPerformed(ActionEvent e){
jTable2.editCellAt(0,0); //当点击存库按钮时,将成绩表中的编辑焦点指向第一个单元格
...... //此处省略其他源代码
}
之前回复“把学生编号、学生姓名、考试类别三个栏位全部填满”不是解决此问题的关键,在此表示歉意。
                
            我们可以采用这种方法解决此问题:
在JF_view_gradesub.java类中的JBsave_actionPerformed()方法第一行添加这样一句话:
JBsave_actionPerformed(ActionEvent e){
jTable2.editCellAt(0,0); //当点击存库按钮时,将成绩表中的编辑焦点指向第一个单元格
...... //此处省略其他源代码
}
之前回复“把学生编号、学生姓名、考试类别三个栏位全部填满”不是解决此问题的关键,在此表示歉意。
2015-01-22
                   
                   
                   
                        9L
                    
   
                   
                                                             [FIELDSET][LEGEND]引自:8楼[/LEGEND]
我们研究了一下,其实这个问题并不是代码的bug,而是Java的JTable组件功能不健全造成的。我们向表格输入信息之后,要把焦点,也就是光标离开这个单元格,这时候用getValueAt()才能取到我们输入的值。如果我们输入完成绩之后直接点存库按钮,虽然最后一个一门课程我们填了成绩,但是焦点没有离开,取到的值就是空字符串,转成数字类型就会抛出上述异常。
我们可以采用这种方法解决此问题:
在JF_view_gradesub.java类中的JBsave_actionPerformed()方法第一行添加这样一句话:
JBsave_actionPerformed(ActionEvent e){
jTable2.editCellAt(0,0); //当点击存库按钮时,将成绩表中的编辑焦点指向第一个单元格
...... //此处省略其他源代码
}
之前回复“把学生编号、学生姓名、考试类别三个栏位全部填满”不是解决此问题的关键,在此表示歉意。
[/FIELDSET]
回复:
出现错误
错误信息为:违反了 PRIMARY KEY 约束 'PK_tb_gradeinfo_sub'。不能在对象 'dbo.tb_gradeinfo_sub' 中插入重复键。
                
            我们研究了一下,其实这个问题并不是代码的bug,而是Java的JTable组件功能不健全造成的。我们向表格输入信息之后,要把焦点,也就是光标离开这个单元格,这时候用getValueAt()才能取到我们输入的值。如果我们输入完成绩之后直接点存库按钮,虽然最后一个一门课程我们填了成绩,但是焦点没有离开,取到的值就是空字符串,转成数字类型就会抛出上述异常。
我们可以采用这种方法解决此问题:
在JF_view_gradesub.java类中的JBsave_actionPerformed()方法第一行添加这样一句话:
JBsave_actionPerformed(ActionEvent e){
jTable2.editCellAt(0,0); //当点击存库按钮时,将成绩表中的编辑焦点指向第一个单元格
...... //此处省略其他源代码
}
之前回复“把学生编号、学生姓名、考试类别三个栏位全部填满”不是解决此问题的关键,在此表示歉意。
[/FIELDSET]
回复:
出现错误
错误信息为:违反了 PRIMARY KEY 约束 'PK_tb_gradeinfo_sub'。不能在对象 'dbo.tb_gradeinfo_sub' 中插入重复键。

 
	
                                                 VIP会员
VIP会员 购物车
购物车

 私信
                         私信 
                     发表新帖
发表新帖 立即签到
立即签到 
        		  
        		 
         		 关注
关注
                  回复
 回复 支持(
                	支持( 反对(
                    反对( 
               			  
                







 
                     
                     
					 
						 
						 
						 
						