设计报告格式Word格式文档下载.docx
- 文档编号:22765061
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:19
- 大小:85.44KB
设计报告格式Word格式文档下载.docx
《设计报告格式Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《设计报告格式Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
明确课程设计的目的,要求设计个图形用户界面的画图程序,在该界面内用鼠标在绘图区域画出满足自己所需要的内容,可以设置线宽和颜色并保存该文件,在界面内打开个已存在的图片文件并操作。
掌握Java语言程序设计
的基本方法和步骤,巩固加深对Java语言课程基本知识的理解与掌握,培养我们利用Java语言进行程序的编与与运用。
所需运行环境:
JCreatorJDK
指导教师意见
同意
签章:
2012年2月28日
系主任意见:
年月曰
完成情况一览表
指导教师
侯锟吕凯
职称讲师
完成内容
完成情况(“)
分析设计准备
V
编程调试
总结报告
汇报考核
综合评定
指导教师评语:
该同学在完成课程设计过程中能够针对所面对的课题进行相关资料的查阅,并且能够对所查阅的文献进行汇总和分析,表示该同学具有了一定的查阅文献和对文献归纳总结的能力。
在杳阅相关文献的基础上,该同学对所研究的课题进行分析,能够针对该课题提出具有一定水平的见解,表示该同学已经具有了较强的基础知识和专业知识。
望该同学能再接再厉。
摘要
本次课程设计是利用JAVA的GUI(GraphicalUserInterface,图形用户接口)实现画图应用程序。
其目的是通过本课程设计使我们能够较全面的掌握面向对象程序设计的开发方法,以便能较全面的理解、掌握和综合运用所学的知识,提高自身的编程能力。
画图程序运用Java语言实现了作为画笔应具备的基本功能要求,作为一个画笔,它能在程序界面内实现任意书写的功能,还可以根据作图人不同的要求来改变画笔颜色、宽度以达到不同的作图效果。
图片完成后可以进行保存。
打开已有的图形文件可以进行修改编辑。
关键字:
JAVA;
图形界面;
画笔;
像素点;
颜色
、设计分析
在JCreator环境中利用Java程序设计语言设计一个画图工具,本次设计重点难点应在于画图工具主窗体的设计、画图的基本功能实现。
1、主窗体的设计:
主类用来生成主界面,完成画图板的主要框架。
主界面由菜单栏、工具栏和画图区域三部分组成。
2、画图的基本功能:
(1)打开、保存一个图形文件。
(2)设置画笔的粗细程度。
(3)设置画笔的颜色。
二、设计要求
1、根据要求查阅相关文献,对画笔程序进行设计,实现画笔的基本功能。
程序功能需求:
(1)利用JAVA语言设计一个画图应用程序。
(2)在程序界面内可改变画笔的粗细程度和颜色,根据不同的要求,设置颜色工具条内有常用的几种颜色和自定义颜色,以达到不同的效果。
(3)可完成图形文件的保存、打开功能。
还可以对打开的图形文件进行修改编辑。
2、掌握Java图形用户界面程序的布局与设计,掌握Java图形用户界面中组件的事件处理方法。
巩固加深对Java语言课程基本知识的理解与掌握,培养我们利用Java语言进行程序的编写与运用。
二、设计原理
本程序通过调用JAVA提供的BorderLayout,Button,Color,Graphics,JFrame,JPanel等基本类进行了简单的界面设计,运用了JAVA中类的继承特性实现了对父类方法的调用。
对菜单栏、工具栏和鼠标画图的事件响应进行处理。
1、菜单栏中文件的打开和保存菜单事件的处理:
Java把每个文件都视作顺序字节流。
如果要在Java中进行文件处理,则必须用到Java.io包。
这个包定义了一些流类,选用FileInputStream和FileOutputStream,通过建立这些文件的对象便可打开文件。
在程序中可以用newFile(),loadFile()和saveFile()三个函数分别实现文件的新建、打开和保存。
2、工具栏事件的处理:
主要有一些Button组成,在画图类DrawPanel中定义CreateNewltem()函数处理工具栏中的画图事件。
3、鼠标画图:
由于画图板主要是用来画图,所以需要在程序中添加对鼠标拖动等事件进行监听并处理。
主界面框架如图1:
图1主界面
主界面代码如下:
mainFrame二newJFrame();
mainFrame.setTitle(”画图"
);
mainFrame.setSize(WIDTH,HEIGHT);
mainFrame.setResizable(false);
本次画笔程序的界面框架主要包括4个部分:
(1)菜单栏包括两个菜单:
“文件”和“帮助”。
每个菜单中又包括不同的菜单选项。
每个选项用于触发相应的事件。
代码如下:
publicvoidshowMenu(){
menuBar二newJMenuBar();
fileMenu二newJMenu(”文件"
|文件帮妙
["
S刑Q)ctri-aI
保存⑸Ctrl-0
图2菜单栏
(2)设置线宽工具条:
用来设计线宽的选项。
包括1个设置线宽的面板,
由JPanel类创建,面板定义为带提示文字的边框。
设置线宽面板按6行1列的
网格布局,依次将各单选按钮添加到单选按钮组和线宽面板。
单选按钮用来设计画笔的线宽。
每个单选按钮都触发相应的事件,然后将线宽面板添加到线宽工具条。
JRadioButtonb1=newJRadioButton(”1”,true);
JRadioButtonb3=newJRadioButton(”3"
JRadioButtonb5=newJRadioButton(”5”);
JRadioButtonb10=newJRadioButton(”10"
设羞线宽
o3
o5
oio
图3线宽工具条
(3)设置颜色工具条:
用来设置画笔的颜色。
包括1个标签6个按钮,依
次添加到工具条中。
info二newJLabel("
设置颜色:
"
白红
绿
蓝
自走文
设蓋濒色;
图4颜色工具条
图5颜色工具条中自定义颜色的弹出窗口
(4)窗口的绘图区域:
绘图区域面板,由自定义的类MyPanel创建,该类
继承自JPanel并实现了MouseMotionListener接口,作为鼠标事件的监听者,
完成画笔的绘制功能
:
JAVA
倉10
图6示例图
四、系统调试
经过此次课程设计,我了解到自己对JAVA语言,只学到了最基本的知识,因为在课程设计的过程中遇到了一些问题,将自己所学到的知识运用到实际例子中没有想象的那么简单。
我这次设计的画笔程序是一个图形用户界面设计的实例,要将画图工具设计好就要经过以下几个步骤:
设置布局、初始化组建、注册监听器、添加组件实现事务处理方法。
所以需要记住大量的组件和事务处理方法。
例如:
Javaswing是一个用于开发java图形化应用程序用户界面的开发工具包。
Swing提供了JFrameJDialog和JAppet三个通用的顶层容器类。
面板类JPanel是一种最常见的中间容器。
Swing中常见组件有标签、文本框、编辑框、复选框等。
这些都应该是在日常的学习中积累起来的,在短时间内完成一个程序设计,需要查阅大量的资料。
五、总结
回顾起此次课程设计,至今我仍感慨颇多,从确定题目到完成整个编程,从理论到实践,在整整两个星期的日子里,学到很多很多的东西,不仅可以巩固以前所学过的知识,还学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能真正做出东西来,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解不够深刻,掌握不够牢固,比如说类与类之间的关系等,通过这次课程设计之,我会把以前所学过的知识重新温故。
Java
毕业在即,在以后的工作学习中,我还会将更多的时间与精力投入到的学习中,不断为自己所学的知识补充新鲜血液。
附录
1源代码
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.io.*;
importjava.util.*;
publicclassMyPaint{publicstaticfinalintWIDTH=600;
publicstaticfinalintHEIGHT=400;
JFramemainFrame;
JMenuBarmenuBar;
JMenufileMenu;
JMenuhelpMenu;
//JMenuhelpMenu;
JMenuItemopenItem;
JMenuItemsaveItem;
JMenuItemexitItem;
JMenuItemaboutItem;
JToolBarlineTool;
JToolBarcolorTool;
JPanelsetLinePanel;
JLabelinfo;
JButtonblackButton;
JButtonwhiteButton;
JButtonredButton;
JButtongreenButton;
JButtonblueButton;
JButtonotherButton;
JColorChooserotherChooser;
MyPaneldrawPane1;
publicvoidshowPaint(){
mainFrame=newJFrame();
mainFrame.setTitle("
画图"
mainFrame.setSize(WIDTH,HEIGHT);
mainFrame.setResizable(false);
//设置用户关闭框架时的响应动作
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
showMenu();
showTool();
mainFrame.show();
}
publicvoidshowMenu(){
menuBar=newJMenuBar();
fileMenu=newJMenu("
文件"
openItem=newJMenuItem("
打开(O)"
'
O'
saveItem=newJMenuItem("
保存(S)"
S'
exitItem=newJMenuItem("
退出(X)"
X'
//设置打开菜单项的快捷键为Ctrl+O
openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
InputEvent.CTRL_MASK));
saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,
openItem.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){drawPane1.loadFile();
}});
saveItem.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){drawPane1.saveFile();
exitItem.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){System.exit(0);
//定义帮助菜单
helpMenu=newJMenu("
帮助"
false);
//定义关于菜单,设置快捷键为A
aboutItem=newJMenuItem("
关于(A)"
A'
//关于菜单项事件监听器,弹出一个消息框
aboutItem.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
JOptionPane.showMessageDialog(mainFrame
I!
5
这是一个简单的画图程序!
"
提示"
JOptionPane」NFORMATION_MESSAGE);
//设置菜单栏
menuBar.add(fileMenu);
menuBar.add(helpMenu);
fileMenu.add(openItem);
fileMenu.add(saveItem);
fileMenu.addSeparator();
fileMenu.add(exitItem);
fileMenu.add(aboutItem);
//设置菜单栏添加到主框架mainFrame.setJMenuBar(menuBar);
publicvoidshowTool(){
lineTool=newJToolBar();
lineTool.setSize(WIDTH/4,HEIGHT/5*3);
//按边界布局方式将设置线宽工具条放在WE5T部分
ContainercontentPane=mainFrame.getContentPane();
contentPane.add(lineTool,BorderLayout.WEST);
//设置线宽面板的实现
setLinePanel=newJPanel();
setLinePanel.setSize(WIDTH/5,HEIGHT/5*4);
//为设置线宽面板定义带提示文字的边框setLinePanel.setBorder(BorderFactory.createTitledBorder("
设置
线宽"
));
//设置线宽面板按6行1列的网络布局
setLinePanel.setLayout(newGridLayout(6,1));
//定义单选按钮组
ButtonGroupbg=newButtonGroup();
//定义单选按钮,设置单选按钮1为已选状态
JRadioButtonb1=newJRadioButton("
1"
true);
JRadioButtonb3=newJRadioButton("
3"
JRadioButtonb5=newJRadioButton("
5"
JRadioButtonb10=newJRadioButton("
10"
b1.addItemListener(newItemListener(){
publicvoiditemStateChanged(ItemEvente){if(e.getStateChange()==e.SELECTED)drawPane1.setLineWidth
(1);
}});
//单选按钮3事件监听器,设置线宽为3像素点b3.addItemListener(newItemListener(){
publicvoiditemStateChanged(ItemEvente){if(e.getStateChange()==e.SELECTED)drawPane1.setLineWidth(3);
b5.addItemListener(newItemListener(){
publicvoiditemStateChanged(ItemEvente){if(e.getStateChange()==e.SELECTED)drawPane1.setLineWidth(5);
b10.addItemListener(newItemListener(){
publicvoiditemStateChanged(ItemEvente){if(e.getStateChange()==e.SELECTED)drawPane1.setLineWidth(10);
//将单选按钮添加到按钮组
bg.add(b1);
bg.add(b3);
bg.add(b5);
bg.add(b10);
//将单选按钮添加到设置线宽面板
setLinePanel.add(b1);
setLinePanel.add(b3);
setLinePanel.add(b5);
setLinePanel.add(b10);
//将设置线宽面板添加到设置线宽工具条
lineTool.add(setLinePanel);
//绘图区面板的实现
drawPane1=newMyPanel();
drawPane1.setSize(WIDTH/4*3,HEIGHT/5*3);
//设置绘图区面板背景色为白色
drawPane1.setBackground(Color.WHITE);
//添加绘图区监听器,监听器就是绘图面板对象本身
drawPane1.addMouseMotionListener(drawPane1);
//按边界布局方式将绘图区面板放在CENTE部分
contentPane.add(drawPane1,BorderLayout.CENTER);
//设置颜色工具条的实现
colorTool=newJToolBar();
colorTool.setSize(WIDTH,HEIGHT/5);
//按边界布局方式将设置颜包工具条放在SOUTI部分
contentPane.add(colorTool,BorderLayout.SOUTH);
info=newJLabel("
设置颜色:
//定义设置颜色的按钮,用颜色图标表示要设置的颜色blackButton=newJButton("
黑"
whiteButton=newJButton("
白"
redButton=newJButton("
红"
greenButton=newJButton("
绿"
blueButton=newJButton("
蓝"
//自定义颜色设置按钮为文字按钮
otherButton=newJButton("
自定义"
//将提示信息标签和设置颜色按钮添加到设置颜色工具条
colorTool.add(info);
colorTool.add(blackButton);
colorTool.add(whiteButton);
colorTool.add(redButton);
colorTool.add(greenButton);
colorTool.add(blueButton);
colorTool.add(otherButton);
//黑色按钮事件监听器,设置颜色为黑色blackButton.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){drawPane1.setLineColor(Color.BLACK);
//
黑色按钮事件监听器,设置颜色为黑色
blackButton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){drawPane1.setLineColor(Color.BLACK);
//白色按钮事件监听器,设置颜色为黑色whiteButton.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){drawPane1.setLineColor(Color.WHITE);
//红色事件监听器,设置颜色为黑色redButton.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){drawPane1.setLineColor(Color.RED);
//绿色按钮事件监听器,设置颜色为黑色greenButton.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){drawPane1.setLineColor(Color.GREEN);
//蓝色按钮事件监听器,设置颜色为黑色blueButton.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){drawPane1.setLineColor(Color.BLUE);
//自定义按钮事件监听器,弹出调色板供用户选择颜色//黑色按钮事件监听器,设置颜色为黑色otherButton.addActionListener(newActionListener(){
Colorcolor;
otherChooser=newJColorChooser();
//显示调色板对话框,返回值为所选的颜色
color=otherChooser.showDialog(mainFrame,"
自定义颜色
drawPane1.getLineColor());
if(color!
=null)
drawPane1.setLineCo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 报告 格式