资源描述:
《java练习绘制2D图形.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、练习28绘制2D图形本例知识点一句话讲解新学知识使用Graphics2D类通过该类的函数画图形使用ActionEvent类事件监听已学知识使用按钮类Button生成按钮使用图像类Graphics设置屏幕颜色一、练习具体要求本练习制作绘制2D图形的实例。如图28-1所示,程序执行后生成一个带有两个按钮的面板,当用户点击“正方形”时,右边将会绘制多个正方形组成的多边形,当用户点击“圆形”时,右边将会绘制多个圆形组成的多边形。二、程序及注释(1)编程思路:本练习因为要绘制2D图形,所以首先要制作控制按钮,通过语句Buttonbt1=newButton("正方形")制作出“正方形”的按钮,
2、通过语句Buttonbt2=newButton("圆形")制作出“圆形”的按钮。然后绘制两类图形,通过语句g2.draw(newRectangle2D.Double(x,y,30,30)),g2.translate(x,y)和g2.rotate(d)语句制作出多个正方形组成的多边形,通过语句g2.draw(newEllipse2D.Double(x,y,35,30)),g2.translate(x,y)和g2.rotate(d)语句制作出多个圆形组成的多边形,。最后,要实现变化的圆形的动态选择,所以要消息响应,函数publicvoidactionPerformed(ActionEv
3、ente)完成此项功能。(2)程序实现及注释://GraphicsCanvasTest.javaimportjava.applet.Applet;importjava.awt.*;importjava.awt.event.*;importjava.awt.geom.*;publicclassGraphicsCanvasTestextendsAppletimplementsActionListener{//变量声明privateButtonbt1=newButton("正方形");privateButtonbt2=newButton("圆形");privatekoCanvaspic=
4、newkoCanvas();//初始化函数publicvoidinit(){add(bt1);add(bt2);add(pic);bt1.setBackground(Color.orange);bt2.setBackground(Color.orange);bt1.addActionListener(this);bt2.addActionListener(this);}//动作响应函数publicvoidactionPerformed(ActionEvente){if(e.getSource()==bt1)pic.picture1();elseif(e.getSource()==b
5、t2)pic.picture2();pic.repaint();}}//自定义画布classkoCanvasextendsCanvas{booleanchoose;publickoCanvas(){setSize(200,120);}publicvoidpicture1(){choose=true;}publicvoidpicture2(){choose=false;}//画屏函数publicvoidpaint(Graphicsg){Graphics2Dg2=(Graphics2D)g;intx=90,y=50,n,m,i;doubled;if(choose){g2.setColo
6、r(Color.red);for(m=0;m<=360;m+=6){d=m*Math.PI/180;g2.draw(newRectangle2D.Double(x,y,30,30));g2.translate(x,y);g2.rotate(d);g2.translate(-x,-y);g2.draw(newRectangle2D.Double(x,y,30,30));}}else{g2.setColor(Color.red);for(m=0;m<=360;m+=6){d=m*Math.PI/180;g2.draw(newEllipse2D.Double(x,y,35,30));g2
7、.translate(x,y);g2.rotate(d);g2.translate(-x,-y);g2.draw(newEllipse2D.Double(x,y,35,30));}}}}三、练习效果(如图28-1所示)本实例代码编写完毕,存盘为:C:j2sdk1.4.0javaprogramsGraphicsCanvasTest.java。打开计算机的命令提示符窗口,然后在命令提示符窗口中,定位到javaprograms目录,输入javacGraphicsCanv