画板和五子棋的保存
画板重绘、保存的总结
重绘:
最初制作的画板在窗体缩小后再打开便没有了所画的图形,要想使改变窗体后所画的东西仍然存在,就需要对画板进行重绘。
采用自定义队列对画板窗体上的画布进行保存:形状item、颜色color,即每画一个图形,就将该图形加入到队列GraphNList中。
在给形状按钮添加动作监听器时,需要使用 按钮名.setActioncommand("sth"); 命令,相当于给按钮添加一个使监听器识别的名字sth,然后在 e.getActionCommand(); 得到名字与已有的名字对比,若匹配则执行相应的命令。
保存:
画板的保存采用的是DataStream流,从GraphNList中取得图形信息,通过画布对象graph得到图形的形状Graph g = nj.getindex(i);,通过读取与写入int来实现。
队列的大小
图形的坐标
图形的形状
颜色:分RGB三个颜色值读取与写入,将color类型转换为int
//在对应的位子写入棋子for(int i = 0;i<cp.Row;i++){for(int j = 0;j<cp.Clo;j++){dout.writeInt(array[i][j]);}}//按顺序读取对应位子的棋子for(int i = 0;i<cp.Row;i++){ for(int j=0;j<cp.Clo;j++){ array[i][j] = din.readInt(); }}