java作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import java.awt.geom.*;
import java.io.*;
class Point implements Serializable//Object serialization 允许你将实现了Serializable接口
10.
11.11. // 的对象转换为字节序列,这些字节序列可以被完全存储以备以后重新生成原来的对象。12. {
13.int x,y;
14. Color col;
int tool;
16.int boarder;
17.
18.Point(int x, int y, Color col, int tool, int boarder)
19.{
20. this.x = x;
21. this.y = y;
22.this.col = col;
23.this.tool = tool;
24.24. this.boarder = boarder;
25.25. }
26.26. }
27.27.
28.28.
29.29. class paintboard extends Frame implements ActionListener,MouseMotionListener, MouseListener,ItemListener
30.
31.30. //Java中Frame默认的布局管理器为BorderLayout,加一个TextField到BorderLayout.SOUTH用来查看
32.31.
32. //点击菜单的getSource()和getCommand()信息,接口java.awt.event.MouseMotionListener
33.
34.//public interface MouseMotionListener extends EventListener
35.
36. //用于接收组件上的鼠标移动事件的监听者接口。
37.
38.38.
39. {
40.int x = -1, y = -1;
41.41. int con = 1;//画笔大小
42.42. int Econ = 5;//橡皮大小
43.43.
44.44. int toolFlag = 0;//toolFlag:工具标记
45.45. //toolFlag工具对应表:
46.46. //(0--画笔);(1--橡皮);(2--清除);
47.47. //(3--直线);(4--圆);(5--矩形);
48.48.
49.49. Color c = new Color(0,0,0); //画笔颜色
50.50. BasicStroke size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN _BEVEL);//画笔粗细
51.51. //BasicStroke 类定义针对图形图元轮廓呈现属性的一个基本集合,
52.52. //描述了用画笔沿Shape 的轮廓绘制的某个标记的形状.
53. Point cutflag = new Point(-1, -1, c, 6, con);//截断标志
54.
55.Vector paintInfo = null;//点信息向量组,Vector为一个容器,一个可以放任何数据,大小可以随意扩大的数组
56.int n = 1;
57.57.
58.58. FileInputStream picIn = null;//FileInputStream 类:提供了对文件读取流的操作
59.59. FileOutputStream picOut = null;//FileOutputStream类:文件输出流操作
60.60. //ObjectOutputStream 和ObjectInputStream 分别利用FileOutputStream 和FileInputStream
61.61. //能支持应用程序实现对象图象的稳定存储。
62.62. ObjectInputStream VIn = null;//ObjectInputStream 可用于恢复以前序列化过的对象
63.63. ObjectOutputStream VOut = null;//ObjectOutputStream 将Java 对象中的基本数据类型和图元
64.64. //写入到一个OutputStream 对象中
65.65.
66.66.
67.67. // *工具面板--画笔,直线,圆,矩形,多边形,橡皮,清除*/
68. Panel toolPanel;
68.69. Button eraser, drLine,drCircle,drRect;
70. Button clear ,pen;
71.Choice ColChoice,SizeChoice,EraserChoice;
72.72. Button colchooser;
73.73. Label 颜色,大小B,大小E; 7
74.4. //保存功能
75.75. Button openPic,savePic;
76.76. FileDialog openPicture,savePicture;
77.77.
78.78.
79.paintboard(String s)
80.80. {
81.81. super(s);
82.82. addMouseMotionListener(this);
83.83. addMouseListener(this);
84.84.
85.85. paintInfo = new Vector();
86.86.
87.87. /*各工具按钮及选择项*/
88.88. //颜色选择
89.89. ColChoice = new Choice();
90.90. ColChoice.add("black");
91.91. ColChoice.add("red");
92.92. ColChoice.add("blue");
93.93. ColChoice.add("green");