ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:17.10KB ,
资源ID:10009016      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10009016.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(java编的画板的源代码.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

java编的画板的源代码.docx

1、java编的画板的源代码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 int x,y; Color col; int tool; int boarder; Point(int x, int y, Color col, int tool, int boarder) this.

2、x = x; this.y = y; this.col = col; this.tool = tool; this.boarder = boarder; class paintboard extends Frame implements ActionListener,MouseMotionListener,MouseListener,ItemListener int x = -1, y = -1; int con = 1;/画笔大小 int Econ = 5;/橡皮大小 int toolFlag = 0;/toolFlag:工具标记 /toolFlag工具对应表: /(0-画笔);(1-橡皮)

3、;(2-清除); /(3-直线);(4-圆);(5-矩形); Color c = new Color(0,0,0); /画笔颜色 BasicStroke size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);/画笔粗细 Point cutflag = new Point(-1, -1, c, 6, con);/截断标志 Vector paintInfo = null;/点信息向量组 int n = 1; FileInputStream picIn = null; FileOutputStream picO

4、ut = null; ObjectInputStream VIn = null; ObjectOutputStream VOut = null; / *工具面板-画笔,直线,圆,矩形,多边形,橡皮,清除*/ Panel toolPanel; Button eraser, drLine,drCircle,drRect; Button clear ,pen; Choice ColChoice,SizeChoice,EraserChoice; Button colchooser; Label 颜色,大小B,大小E; /保存功能 Button openPic,savePic; FileDialog o

5、penPicture,savePicture; paintboard(String s) super(s); addMouseMotionListener(this); addMouseListener(this); paintInfo = new Vector(); /*各工具按钮及选择项*/ /颜色选择 ColChoice = new Choice(); ColChoice.add(black); ColChoice.add(red); ColChoice.add(blue); ColChoice.add(green); ColChoice.addItemListener(this); /

6、画笔大小选择 SizeChoice = new Choice(); SizeChoice.add(1); SizeChoice.add(3); SizeChoice.add(5); SizeChoice.add(7); SizeChoice.add(9); SizeChoice.addItemListener(this); /橡皮大小选择 EraserChoice = new Choice(); EraserChoice.add(5); EraserChoice.add(9); EraserChoice.add(13); EraserChoice.add(17); EraserChoice.a

7、ddItemListener(this); / toolPanel = new Panel(); clear = new Button(清除); eraser = new Button(橡皮); pen = new Button(画笔); drLine = new Button(画直线); drCircle = new Button(画圆形); drRect = new Button(画矩形); openPic = new Button(打开图画); savePic = new Button(保存图画); colchooser = new Button(显示调色板); /各组件事件监听 cle

8、ar.addActionListener(this); eraser.addActionListener(this); pen.addActionListener(this); drLine.addActionListener(this); drCircle.addActionListener(this); drRect.addActionListener(this); openPic.addActionListener(this); savePic.addActionListener(this); colchooser.addActionListener(this); 颜色 = new La

9、bel(画笔颜色,Label.CENTER); 大小B = new Label(画笔大小,Label.CENTER); 大小E = new Label(橡皮大小,Label.CENTER); /面板添加组件 toolPanel.add(openPic); toolPanel.add(savePic); toolPanel.add(pen); toolPanel.add(drLine); toolPanel.add(drCircle); toolPanel.add(drRect); toolPanel.add(颜色); toolPanel.add(ColChoice); toolPanel.ad

10、d(大小B); toolPanel.add(SizeChoice); toolPanel.add(colchooser); toolPanel.add(eraser); toolPanel.add(大小E); toolPanel.add(EraserChoice); toolPanel.add(clear); /工具面板到APPLET面板 add(toolPanel,BorderLayout.NORTH); setBounds(60,60,900,600); setVisible(true); validate(); /dialog for save and load openPicture

11、= new FileDialog(this,打开图画,FileDialog.LOAD); openPicture.setVisible(false); savePicture = new FileDialog(this,保存图画,FileDialog.SAVE); savePicture.setVisible(false); openPicture.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) openPicture.setVisible(false); ); savePicture

12、.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) savePicture.setVisible(false); ); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); public void paint(Graphics g) Graphics2D g2d = (Graphics2D)g; Point p1,p2; n = paintInfo

13、.size(); if(toolFlag=2) g.clearRect(0,0,getSize().width,getSize().height);/清除 for(int i=0; in ;i+) p1 = (Point)paintInfo.elementAt(i); p2 = (Point)paintInfo.elementAt(i+1); size = new BasicStroke(p1.boarder,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL); g2d.setColor(p1.col); g2d.setStroke(size); if(p

14、1.tool=p2.tool) switch(p1.tool) case 0:/画笔 Line2D line1 = new Line2D.Double(p1.x, p1.y, p2.x, p2.y); g2d.draw(line1); break; case 1:/橡皮 g.clearRect(p1.x, p1.y, p1.boarder, p1.boarder); break; case 3:/画直线 Line2D line2 = new Line2D.Double(p1.x, p1.y, p2.x, p2.y); g2d.draw(line2); break; case 4:/画圆 Ell

15、ipse2D ellipse = new Ellipse2D.Double(p1.x, p1.y, Math.abs(p2.x-p1.x) , Math.abs(p2.y-p1.y); g2d.draw(ellipse); break; case 5:/画矩形 Rectangle2D rect = new Rectangle2D.Double(p1.x, p1.y, Math.abs(p2.x-p1.x) , Math.abs(p2.y-p1.y); g2d.draw(rect); break; case 6:/截断,跳过 i=i+1; break; default : /end switch

16、 /end if /end for public void itemStateChanged(ItemEvent e) if(e.getSource()=ColChoice)/预选颜色 String name = ColChoice.getSelectedItem(); if(name=black) c = new Color(0,0,0); else if(name=red) c = new Color(255,0,0); else if(name=green) c = new Color(0,255,0); else if(name=blue) c = new Color(0,0,255)

17、; else if(e.getSource()=SizeChoice)/画笔大小 String selected = SizeChoice.getSelectedItem(); if(selected=1) con = 1; size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL); else if(selected=3) con = 3; size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL); else if(sele

18、cted=5) con = 5; size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL); else if(selected=7) con = 7; size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL); else if(selected=9) con = 9; size = new BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL); else i

19、f(e.getSource()=EraserChoice)/橡皮大小 String Esize = EraserChoice.getSelectedItem(); if(Esize=5) Econ = 5*2; else if(Esize=9) Econ = 9*2; else if(Esize=13) Econ = 13*2; else if(Esize=17) Econ = 17*3; public void mouseDragged(MouseEvent e) Point p1 ; switch(toolFlag) case 0:/画笔 x = (int)e.getX(); y = (i

20、nt)e.getY(); p1 = new Point(x, y, c, toolFlag, con); paintInfo.addElement(p1); repaint(); break; case 1:/橡皮 x = (int)e.getX(); y = (int)e.getY(); p1 = new Point(x, y, null, toolFlag, Econ); paintInfo.addElement(p1); repaint(); break; default : public void mouseMoved(MouseEvent e) public void update(

21、Graphics g) paint(g); public void mousePressed(MouseEvent e) Point p2; switch(toolFlag) case 3:/直线 x = (int)e.getX(); y = (int)e.getY(); p2 = new Point(x, y, c, toolFlag, con); paintInfo.addElement(p2); break; case 4: /圆 x = (int)e.getX(); y = (int)e.getY(); p2 = new Point(x, y, c, toolFlag, con); p

22、aintInfo.addElement(p2); break; case 5: /矩形 x = (int)e.getX(); y = (int)e.getY(); p2 = new Point(x, y, c, toolFlag, con); paintInfo.addElement(p2); break; default : public void mouseReleased(MouseEvent e) Point p3; switch(toolFlag) case 0:/画笔 paintInfo.addElement(cutflag); break; case 1: /eraser pai

23、ntInfo.addElement(cutflag); break; case 3:/直线 x = (int)e.getX(); y = (int)e.getY(); p3 = new Point(x, y, c, toolFlag, con); paintInfo.addElement(p3); paintInfo.addElement(cutflag); repaint(); break; case 4: /圆 x = (int)e.getX(); y = (int)e.getY(); p3 = new Point(x, y, c, toolFlag, con); paintInfo.ad

24、dElement(p3); paintInfo.addElement(cutflag); repaint(); break; case 5: /矩形 x = (int)e.getX(); y = (int)e.getY(); p3 = new Point(x, y, c, toolFlag, con); paintInfo.addElement(p3); paintInfo.addElement(cutflag); repaint(); break; default: public void mouseEntered(MouseEvent e) public void mouseExited(

25、MouseEvent e) public void mouseClicked(MouseEvent e) public void actionPerformed(ActionEvent e) if(e.getSource()=pen)/画笔 toolFlag = 0; if(e.getSource()=eraser)/橡皮 toolFlag = 1; if(e.getSource()=clear)/清除 toolFlag = 2; paintInfo.removeAllElements(); repaint(); if(e.getSource()=drLine)/画线 toolFlag = 3

26、; if(e.getSource()=drCircle)/画圆 toolFlag = 4; if(e.getSource()=drRect)/画矩形 toolFlag = 5; if(e.getSource()=colchooser)/调色板 Color newColor = JColorChooser.showDialog(this,调色板,c); c = newColor; if(e.getSource()=openPic)/打开图画 openPicture.setVisible(true); if(openPicture.getFile()!=null) int tempflag; te

27、mpflag = toolFlag; toolFlag = 2 ; repaint(); try paintInfo.removeAllElements(); File filein = new File(openPicture.getDirectory(),openPicture.getFile(); picIn = new FileInputStream(filein); VIn = new ObjectInputStream(picIn); paintInfo = (Vector)VIn.readObject(); VIn.close(); repaint(); toolFlag = t

28、empflag; catch(ClassNotFoundException IOe2) repaint(); toolFlag = tempflag; System.out.println(can not read object); catch(IOException IOe) repaint(); toolFlag = tempflag; System.out.println(can not read file); if(e.getSource()=savePic)/保存图画 savePicture.setVisible(true); try File fileout = new File(

29、savePicture.getDirectory(),savePicture.getFile(); picOut = new FileOutputStream(fileout); VOut = new ObjectOutputStream(picOut); VOut.writeObject(paintInfo); VOut.close(); catch(IOException IOe) System.out.println(can not write object); /end paintboard public class pb public static void main(String args) new paintboard(画图程序);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1