为什么添加了图片以后整个类保存错误 !!跪求答案

问题描述

先是主类里面的保存函数

if(e.getSource()==saveManul){startMakeManul.setVisible(false);JFileChooserchooser=newJFileChooser();intstate=chooser.showSaveDialog(null);Filefile=chooser.getSelectedFile();if(file!=null&&state==JFileChooser.APPROVE_OPTION){try{FileOutputStreamout=newFileOutputStream(file);ObjectOutputStreamobjectOut=newObjectOutputStream(out);objectOut.writeObject(board);out.close();objectOut.close();}catch(Exceptionevent){}}}然后个人发现保存错误居然是在子类里面用了一个drawimage的函数!!!子类的所有代码如下:

publicvoidpaintComponent(Graphicsg){//绘制出棋盘上的横线、竖线和其他必要的图形super.paintComponent(g);//g.setColor(Color.blue);//将背景色设置为绿色//g.fillRect(0,0,this.getBounds().width,this.getBounds().height);//代码出错于此,img是Image的一个类,用toolkit来获取的,如果不用drawImage函数的话,用fillRect完//全可以保存,并顺利打开!!!!!!//g.drawImage(img,0,0,this.getBounds().width,this.getBounds().height,this);if(ChinaChess.a==1){g.setColor(Color.pink);}elseif(ChinaChess.a==2){g.setColor(Color.yellow);g.fillRect(0,0,this.getBounds().width,this.getBounds().height);repaint();}elseif(ChinaChess.a==3){g.setColor(Color.blue);repaint();}else{g.setColor(Color.green);repaint();}g.fillRect(0,0,this.getBounds().width,this.getBounds().height);g.setColor(Color.orange);g.fillRect(playPoint[0][0].x,playPoint[0][0].y,8*distance,9*distance);g.setColor(Color.black);//将棋盘的线设置为黑色for(inti=0;i<=m-1;i++){g.drawLine(playPoint[i][0].x,playPoint[i][0].y,playPoint[i][n-1].x,playPoint[i][n-1].y);}for(intj=0;j<=n-1;j++){if(j>0&&j<n-1){g.drawLine(playPoint[0][j].x,playPoint[0][j].y,playPoint[4][j].x,playPoint[4][j].y);g.drawLine(playPoint[5][j].x,playPoint[5][j].y,playPoint[m-1][j].x,playPoint[m-1][j].y);}else{g.drawLine(playPoint[0][j].x,playPoint[0][j].y,playPoint[m-1][j].x,playPoint[m-1][j].y);}}打开保存的东西:

publicvoidshowBoardManul(){stepNumber=1;stackStep.clear();stackBack.clear();if(demoOne!=null)remove(demoOne);try{FileInputStreamfile_in=newFileInputStream(file);ObjectInputStreamobject_in=newObjectInputStream(file_in);demoOne=(ChessBoard)object_in.readObject();file_in.close();object_in.close();ChessPiece[]redPiece=demoOne.getRedPiece();ChessPiece[]blackPiece=demoOne.getBlackPiece();for(inti=0;i<redPiece.length;i++){MouseListener[]listener=redPiece[i].getMouseListeners();for(intk=0;k<listener.length;k++)redPiece[i].removeMouseListener(listener[k]);listener=blackPiece[i].getMouseListeners();for(intk=0;k<listener.length;k++)blackPiece[i].removeMouseListener(listener[k]);MouseMotionListener[]mr=redPiece[i].getMouseMotionListeners();for(intk=0;k<mr.length;k++)redPiece[i].removeMouseMotionListener(mr[k]);mr=blackPiece[i].getMouseMotionListeners();for(intk=0;k<mr.length;k++)blackPiece[i].removeMouseMotionListener(mr[k]);}step=demoOne.getStep();for(inti=step.size()-1;i>=0;i--){stackStep.push(step.get(i));}demoOne.remove(demoOne.cancel);restoreChessBoard(step);split.setRightComponent(newJScrollPane(demoOne));}catch(Exceptionexp){add(newJButton("不是棋谱文件"),BorderLayout.CENTER);}}ps:本人经过无限次测试,发现打开是没错的,就是保存那里不知道发生了什么事,一用drawImage就会报错,求答案!

解决方案

解决方案二:
请贴完整代码请贴异常堆栈
解决方案三:
请先学会结贴.

时间: 2024-08-17 09:18:57

为什么添加了图片以后整个类保存错误 !!跪求答案的相关文章

android怎样实现图片向左滑动浏览?跪求大神!!!

问题描述 android怎样实现图片向左滑动浏览?跪求大神!!! 从第一张图开始,不需要重复浏览,到第三张图结束.本人新手,求详细代码和注释!!! 解决方案 直接用ViewPager不就行了?参考:http://blog.csdn.net/alangdangjia/article/details/9054921 解决方案二: 参考:http://www.cnblogs.com/devxiaobai/archive/2013/05/10/viewimage.htmlhttp://blog.163.

图片-java项目jar包问题跪求

问题描述 java项目jar包问题跪求 求解 解决方案 java项目ant打jar包.war包java项目打jar包 解决方案二: 你把问题说明白哦,java项目jar包添加基本的jdk 和项目下lib 解决方案三: 到底是打包遇到问题还是引入遇到问题? 解决方案四: 到底是打包遇到问题还是引入遇到问题? 解决方案五: 你要问什么问题啊,是少jar包么

mfc图片注释-vs2010MFC如何为图片添加注释并能拖动和保存

问题描述 vs2010MFC如何为图片添加注释并能拖动和保存 vs2010MFC如何为图片添加注释并能拖动和保存,功能类似于ps,本人小菜,求源码

给网站添加一个注册表 之 “类的应用”

注册表 下面,我们用这个"注册表"类来写一个简单的"计数器"应用,代码如下: pagecount.asp: <!-- #Include File="registry_class_inc.asp" --><%Dim RegSet Reg = New RegistryObjectReg.Path = Server.MapPath("pagecount.xml") Const BaseCount = 8000 '计

java swing如何添加背景图片并能根据窗口大小进行缩放

前段时间在用JAVA SWING做个客户端的时候,有要在一块主面板上添加背景图片的需求,于是自己在网上找了些资料研究一下,有些网友说用JLabel来做,通过设置它的icon属性来实现,但个人感觉这种做法很HACK,呵呵,而且这种方法容易带来在上面的内容被遮住等等的问题,所以个人更喜欢用一个继承JPanel的类来实现的方法,其实我感觉它跟Web中的层的概念有几分相似吧,只需要把这个"层"加到面板的最下面,作为垫底的,就OK了,来看看怎样实现它: import javax.swing.JP

Excel 2013中为数据区域添加背景图片的的方法

  Excel 2013中为数据区域添加背景图片的的方法           1.启动Excel 2013并打开工作表,在"页面布局"选项卡的"页眉设置"组中单击"背景"按钮,如图1所示. 图1 单击"背景"按钮 2.打开"插入图片"窗口,单击"来自文件"按钮,如图2所示.此时将打开"工作表背景"对话框,选择作为背景的图片后单击"插入"按钮将其插入

怎么样给Win 7桌面小工具图片拼图板添加新图片

Win 7桌面小工具图片拼图板默认的话只有11张图片,我一个朋友非常喜欢玩这个游戏,几个星期就玩通关了,然后没图片可以玩了,感觉好没意思.然后就问我可以不可以自己找些图片添加进去,然后我把加图片的方法告诉他了,随便在这边分享下. 1 给予文件夹Administrator账户权限. Program FilesWindows SidebarGadgetsPicturePuzzleGadgetZh-cnjs文件夹,右击Settings文件打开属性对话框,切换到安全项卡,单击高级按钮进入Settings

mfc-不知道为什么MFC为控件添加了变量后,类视图里没有。

问题描述 不知道为什么MFC为控件添加了变量后,类视图里没有. 列表视图控件"> 添加了这个变量点击确定,没有效果,控件的变量为空.求高手解答. 解决方案 先把控件放入窗体上,然后保存下项目,ctrl+f5编译,再打开类向导,看下控件id下拉框中有没有找到这个控件. 如果遇到你修改了头文件,或者定义了重复的控件等情况,类向导没办法处理,就会出错. 解决方案二: 如果编译器出bug了 那么可以尝试手动添加绑定一下 解决方案三: 在对应的.h文件中有吗?有的话关闭类视图重新打开下试试 解决方案

mfc读取图片数据,并保存到数组里

问题描述 mfc读取图片数据,并保存到数组里 我使用的是cimage类中的getbits,但是没有成功 求解答, 解决方案 试试用打开文件的方式,二进制模式.要不你看看getbits在运行的时候到底有没有读出来,一步一步调试,问题总会找出来的. 解决方案二: 读取的图片是以特定的数据结构来存放的,不知你要存放到数据里面是有什么用?如果是要对像素进行一些计算操作的话,不妨试试使用opencv库来读图, 读出来的图片是以矩阵形式存放的,对于像素和行列操作都很方便. 解决方案三: MFC 打开文件夹读