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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

java课设用菜单按钮控制绘图.docx

1、java课设用菜单按钮控制绘图功能综述 复习、巩固Java语言的基础知识 进一步加深对Java语言的理解和掌握课程设计为学生提供了一个既动手又动脑、独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力,培养学生在项目开发中团队合作精神、创新意识及能力。 实现简单绘图功能,具体要求:画直线,画空心或实心椭圆、画空心或实心矩形、画多边形(图形的位置和大小可在程序中设定)。(一) 分析与设计说明 本学期对于java语言的学习,本程序运用图形界面和绘图功能,均已学过利用Eclipse工具,采用java语言解决问题。 运行程序,输入图

2、形类型,并输入两个坐标参数(不超过界面的大小),再选择程序界面上方相应所需的菜单选项或下方的按钮,得到所需图形,完成功能的实现。(二) 代码分析 /图形界面的实现(图形界面包括2个标签,4个菜单,6个按钮,5个文本组件)/导入程序所需要的包import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Draw extends JFrame implements ActionListener private static final long serialVersionUID = 1L; privat

3、e static final int WIDTH=600; private static final int HEIGHT=600; JMenuBar menubar; JMenu menu1,menu2,menu3,menu4; JMenuItem item1,item2,item3,item4,item5,item6; JButton button1,button2,button3,button4,button5,button6; JLabel label1; Mypanel pane1=new Mypanel(); DrawCanvas JD=null;/将图形界面设为名为“控制绘图”且

4、长宽都为600的图形界面。 public Draw() super(控制绘图); setSize(WIDTH,HEIGHT); Container c=getContentPane(); JD=new DrawCanvas(); JPanel pane2=new JPanel(); Compent(c, pane2); private void Compent(Container c, JPanel pane2) menubar=new JMenuBar(); menu1=new JMenu(直线); menu2=new JMenu(椭圆); menu3=new JMenu(矩形); menu

5、4=new JMenu(多边形); item1=new JMenuItem(直线); item2=new JMenuItem(空心椭圆); item3=new JMenuItem(实心椭圆); item4=new JMenuItem(空心矩形); item5=new JMenuItem(实心矩形); item6=new JMenuItem(多边形); item1.addActionListener(this); item2.addActionListener(this); item3.addActionListener(this); item4.addActionListener(this);

6、 item5.addActionListener(this); item6.addActionListener(this); label1=new JLabel(); menu1.add(item1); menu2.add(item2); menu2.addSeparator(); menu2.add(item3); menu3.add(item4); menu3.addSeparator(); menu3.add(item5); menu4.add(item6); menubar.add(menu1); menubar.add(menu2); menubar.add(menu3); menu

7、bar.add(menu4); setJMenuBar(menubar); button1=new JButton(直线); button2=new JButton(空心椭圆); button3=new JButton(实心椭圆); button4=new JButton(空心矩形); button5=new JButton(实心矩形); button6=new JButton(多边形); pane2.add(button1); pane2.add(button2); pane2.add(button4); pane2.add(button6); pane2.add(label1); pane

8、2.add(button3); pane2.add(button5); button1.addActionListener(this); button2.addActionListener(this); button3.addActionListener(this); button4.addActionListener(this); button5.addActionListener(this); button6.addActionListener(this); c.add(pane1,BorderLayout.NORTH); c.add(pane2,BorderLayout.SOUTH);

9、c.add(JD,BorderLayout.CENTER); pane2.setLayout(new GridLayout(2,5,20,10); /*Draw继承了JFrame,因此可以显示,首先声明标签、菜单、按钮和一个JFrame窗口。 然后通过构建标签、菜单、按钮 菜单项添加到菜单中。标签、菜单、按钮添加到窗口容器中,设置容器的大小及添加按钮和菜单事件监听者。 */*处理事件监听器事件*/ public void actionPerformed(ActionEvent e) int x1,y1,x2,y2; x1=Integer.parseInt(pane1.getA().getTex

10、t(); y1=Integer.parseInt(pane1.getB().getText(); x2=Integer.parseInt(pane1.getC().getText(); y2=Integer.parseInt(pane1.getD().getText(); int x3=280,120,50,90,210,280; int x4=20,50,100,110,70,20; int n=5; /当监听器监听到鼠标点击菜单项实心椭圆时,绘制实心椭圆图形 else if(e.getSource()=item3) if(JD!=null) JD.setLine(0); JD.setOva

11、l(0); JD.setfillOval(1); JD.setRect(0); JD.setfillRect(0); JD.setPolygon(0); JD.setPosition(x1,y1,x2,y2); JD.repaint(); /当监听器监听到鼠标点击菜单项直线时,绘制直线图形/当监听器监听到鼠标点击菜单项空心椭圆时,绘制空心椭圆图形/当监听器监听到鼠标点击菜单项空心矩形时,绘制空心矩形图形/当监听器监听到鼠标点击菜单项实心矩形时,绘制实心矩形图形/当监听器监听到鼠标点击菜单项多边形时,绘制多边形图形/当监听器监听到鼠标点击按钮直线时,绘制直线图形 if(e.getSource()

12、=button1) if(JD!=null) JD.setLine(1); JD.setOval(0); JD.setfillOval(0); JD.setRect(0); JD.setfillRect(0); JD.setPolygon(0); JD.setPosition(x1,y1,x2,y2); JD.repaint(); /当监听器监听到鼠标点击按钮空心椭圆时,绘制空心椭圆图形/当监听器监听到鼠标点击按钮实心椭圆时,绘制实心椭圆图形/当监听器监听到鼠标点击按钮空心矩形时,绘制空心矩形图形/当监听器监听到鼠标点击按钮实心矩形时,绘制实心矩形图形/当监听器监听到鼠标点击按钮多边形时,绘制

13、多边形图形/3.主函数的实现:/在主函数中创建了一个jf窗口 用于产生图形界面。设置其可见和大小不可改变属性 public static void main(String args) JFrame jf=new Draw(); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setResizable(false); jf.setVisible(true); /图形绘制的实现/导入该程序所需要的包import java.awt.*; import javax.swing.*; /DrawCanvas实现图形的绘制(直线 空心椭圆 实心椭

14、圆 空心矩形 实心矩形 多边形)。public class DrawCanvas extends JPanel private static final long serialVersionUID = 1L; int x1,y1,x2,y2; int line,oval,filloval,rect,fillrect,polygon; int x3,x4,n; public void setPosition(int x1,int y1,int x2,int y2) this.x1=x1; this.y1=y1; this.x2=x2; this.y2=y2; public void setPol

15、Position(int x3,int x4,int n) this.x3=x3; this.x4=x4; this.n=n; public void setLine(int line) this.line=line; public void setOval(int oval) this.oval=oval; public void setfillOval(int filloval) this.filloval=filloval; public void setRect(int rect) this.rect=rect; public void setfillRect(int fillrect

16、) this.fillrect=fillrect; public void setPolygon(int polygon) this.polygon=polygon; public void paintComponent(Graphics g) g.setColor(getBackground(); g.fillRect(0,0,this.getWidth(),this.getHeight(); g.setColor(Color.black); if(line=1) g.drawLine(x1,y1,x2,y2); else if(oval=1) g.drawOval(x1, y1, x2,

17、y2); else if(filloval=1) g.fillOval(x1,y1,x2,y2); else if(rect=1) g.drawRect(x1, y1, x2, y2); else if(fillrect=1) g.fillRect(x1,y1,x2,y2); else if(polygon=1) g.drawPolygon(x3,x4,n); /设置参数的实现/导入程序所需的包import java.awt.*; import javax.swing.*; /Mypanel类中声明了标签并使得通过创建该类的实例将其添加到图形界面中public class Mypanel ex

18、tends JPanel private static final long serialVersionUID = 1L; Label label1,label2,label3,label4; TextField a,b,c,d,x; Mypanel() label2=new Label(请输入:); label1=new Label(参数 ); /*参数最大可设置4位 不过上面的图像界面中设置的大小为600 600。故此设置的大小不应该超过600 600 600 600。*/ x=new TextField(4); a=new TextField(4); b=new TextField(4)

19、; c=new TextField(4); d=new TextField(4); add(label2); add(x); add(label1); add(a); add(b); add(c); add(d); public TextField getA() return a; public void setA(TextField a) this.a = a; public TextField getB() return b; public void setB(TextField b) this.b = b; public TextField getC() return c; public

20、 void setC(TextField c) this.c = c; public TextField getD() return d; public void setD(TextField d) this.d = d; /*应该注意的是,多边形的参数是数组型给出,故为了简便,程序中已经设置好多变形的参数,不论输入的参数是什么,显示的还是代码中已经设置好的参数的那个多边形。参数一二位为图形起点位置坐标,三四位位图形终点坐标 分别为图形的左上角和右下角。*/(三) 运行结果例一:输入“直线”和参数,选择直线菜单项,绘制图线为直线。例二:输入“空心椭圆”和参数,选择下方空心椭圆按钮,绘制图形为空

21、心椭圆。例三:输入“实心矩形”和参数,选择下方实心矩形按钮,绘制图形为实心矩形。例四:输入“多边形”和参数,选择多边形菜单项,绘制图形为多边形。 结果分析: 1、当输入“直线”,并输入起始两点坐标参数,点击直线菜单项或直线按钮时, 绘制图形为直线。 2、当输入“空心椭圆”,并输入两点坐标参数,点击空心椭圆菜单项或空心椭圆按钮时,绘制图形为空心椭圆。 3、当输入“实心椭圆”,并输入两点坐标参数,点击实心椭圆菜单项或实心椭圆时按钮,绘制图形为实心椭圆。 4、当输入“空心矩形”,并输入对角线两点坐标参数,点击空心矩形菜单项或空心矩形按钮时,绘制图形为空心矩形。 5、当输入“实心矩形”,并输入对角线两

22、点坐标参数,点击实心矩形菜单项或实心矩形按钮时,绘制图形为实心矩形。 6、当输入“多边形”,并输入两点坐标参数,点击多边形菜单项或多边形按钮 时,绘制图形为多边形。(四) 附录 附录一:import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Draw extends JFrame implements ActionListener private static final long serialVersionUID = 1L; private static final int WIDTH=60

23、0; private static final int HEIGHT=600; /界面大小 JMenuBar menubar; /菜单条 JMenu menu1,menu2,menu3,menu4; /菜单 JMenuItem item1,item2,item3,item4,item5,item6; /菜单项 JButton button1,button2,button3,button4,button5,button6; JLabel label1; Mypanel pane1=new Mypanel(); DrawCanvas JD=null;/将图形界面设为名为“控制绘图”且长宽都为600

24、的图形界面。 public Draw() super(控制绘图); /创建标题; setSize(WIDTH,HEIGHT); Container c=getContentPane(); /初始化容器; JD=new DrawCanvas(); JPanel pane2=new JPanel(); Compent(c, pane2); private void Compent(Container c, JPanel pane2) menubar=new JMenuBar(); menu1=new JMenu(直线); menu2=new JMenu(椭圆); menu3=new JMenu(矩

25、形); menu4=new JMenu(多边形); /构造一个新 JMenu,用提供的字符串作为其文本; item1=new JMenuItem(直线); item2=new JMenuItem(空心椭圆); item3=new JMenuItem(实心椭圆); item4=new JMenuItem(空心矩形); item5=new JMenuItem(实心矩形); item6=new JMenuItem(多边形); item1.addActionListener(this); item2.addActionListener(this); item3.addActionListener(th

26、is); item4.addActionListener(this); item5.addActionListener(this); item6.addActionListener(this); label1=new JLabel(); menu1.add(item1); menu2.add(item2); menu2.addSeparator(); menu2.add(item3); menu3.add(item4); menu3.addSeparator(); /往菜单、对象条中到场一条横线,完成分组功效; menu3.add(item5); menu4.add(item6); menub

27、ar.add(menu1); menubar.add(menu2); menubar.add(menu3); menubar.add(menu4); setJMenuBar(menubar); button1=new JButton(直线); button2=new JButton(空心椭圆); button3=new JButton(实心椭圆); button4=new JButton(空心矩形); button5=new JButton(实心矩形); button6=new JButton(多边形); pane2.add(button1); pane2.add(button2); pane

28、2.add(button4); pane2.add(button6); pane2.add(label1); pane2.add(button3); pane2.add(button5); button1.addActionListener(this); button2.addActionListener(this); button3.addActionListener(this); button4.addActionListener(this); button5.addActionListener(this); button6.addActionListener(this); c.add(pane1,BorderLayout.NORTH); c.add(pane2,BorderLayout.SOUTH); c.add(JD,BorderLayout.CENTER); pane2.setLayout(new

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

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