篇一:简单画图程序设计
面向对象程序设计
课程设计报告
设计题目: 简单画图程序的设计
学院: 专业: 学号:
姓名: 信息工程学院 计算机科学与技术(交通)
指导教师:
2015 年 1 月 4 日
目录
1.设计目的和内容------------------------------------------------1
1.1.设计目的-----------------------------------------------------------1
1.2.设计内容-----------------------------------------------------------1
2.基本功能---------------------------------------------------------1
2.1.图形样式-----------------------------------------------------------1
2.2.颜色样式-----------------------------------------------------------2
2.3.画笔样式-----------------------------------------------------------2
2.4.线型选择-----------------------------------------------------------3
3.设计思路---------------------------------------------------------3
4.软件设计---------------------------------------------------------5
4.1.设计步骤-----------------------------------------------------------5
4.2.界面设计-----------------------------------------------------------8
4.3.关键功能的实现----------------------------------------------------9
5.心得体会--------------------------------------------------------11
6.参考文献--------------------------------------------------------11
7.附录--------------------------------------------------------------11
7.1.调试报告----------------------------------------------------------11
7.2.调试结果----------------------------------------------------------12
7.3.关键源代码--------------------------------------------------------12
1. 设计目的和内容
1.1. 设计目的
1、 学习Visual C++的MFC开发程序的步骤
2、 综合运用所学的类、继承和多态的知识
3、 进一步掌握程序调试的方法
1.2. 设计内容
1、 利用MFC的向导,创建基于单文档的应用程序
2、 编程实现,绘制线、圆、矩形的功能
3、 能够设定当前要画的图形样式(最少为以上3种)和图形颜色(最少能够设为以下
4种颜色:黑、红、绿、蓝)
4、 当窗口重绘后,还能保持原来的图形
5、 选做1:能够选中某些已绘制的图形,并删除之
6、 选做2:能够保存已绘制的图形,下次打开时恢复原状
2. 基本功能
2.1.图形样式
在菜单栏的设置里面有图形样式的选择,可以点击选中也可以在工具栏里点击图形的图标,能够实现绘制点、直线、矩形和椭圆的功能。
第1页
2.2.颜色样式
在菜单栏的设置里面有颜色样式的选择,可以点击选中也可以在工具栏里点击颜色的图标,除了能够实现红、绿、蓝、黄、黑的普通选择,同时还加入了一个颜色板,点击更多(…)可以在调色板上选择任意的颜色。
菜单和工具栏选色:
调色板选色:
2.3.画笔样式
在菜单栏的设置里面有画笔样式的选择,可以点击选中即改变画笔的线宽,也可以在工具栏里点击表示画笔宽度的快捷按钮,线宽有从标准、一般、略粗和更粗的选择。
第2页
篇二:Java实现简单的绘图软件
项目效果图:
项目源代码:
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
/* author: 蒋冰 */
public class ImageDraw {
private int typeFlag = 1;
private int endFlag = 1;
private int strokeTemp = 1;
private Color color = Color.black;
private BasicStroke stroke = new BasicStroke();
private float pre_x = 0;
private float pre_y = 0;
private float start_x = 0;
private float start_y = 0;
private float start_X = 0;
private float start_Y = 0;
private float end_x = 0;
private float end_y = 0;
private float width = 0;
private float height = 0;
private final int AREA_WIDTH = 700;
private final int AREA_HEIGHT = 400;
private Line2D.Float line;
private Rectangle2D.Float rect;
private Ellipse2D.Float ellipse;
private File imageFile;
BufferedImage image = new BufferedImage(AREA_WIDTH , AREA_HEIGHT , BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = (Graphics2D) image.getGraphics();
private JFrame frame = new JFrame("简单手绘程序");
private DrawPanel drawArea = new DrawPanel();
JButton buttonShowColor = new JButton("");
public void init(){
g2.fillRect(0 , 0 ,AREA_WIDTH , AREA_HEIGHT);
g2.setColor(Color.black);
drawArea.setPreferredSize(new Dimension(AREA_WIDTH , AREA_HEIGHT));drawArea.addMouseMotionListener(new MouseMotionAdapter()
{
public void mouseDragged(MouseEvent e)
{
do_mouseDragged(e);
}
});
drawArea.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent e1){
do_mousePressed(e1);
}); public void mouseReleased(MouseEvent e) { g2.setColor(color); g2.setStroke(stroke); endFlag = typeFlag; drawArea.repaint(); } public void mouseEntered(MouseEvent e){ frame.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR)); } public void mouseExited(MouseEvent e){ frame.setCursor(null); } frame.add(drawArea); JMenuBar mb = new JMenuBar(); JMenu menuFile = new JMenu("文件"); JMenuItem menuItemSave = new JMenuItem("保存"); menuItemSave.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) {do_save_actionPerformed(arg0); }}); JMenuItem menuItemOpen = new JMenuItem("打开"); menuItemOpen.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) {try { do_open_actionPerformed(arg0);} catch (IOException e) { // TODO 自动生成的 catch 块 e.printStackTrace();} } });
JMenuItem menuItemExit = new JMenuItem("退出"); menuItemExit.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) {System.exit(0); } }); menuFile.add(menuItemSave); menuFile.add(menuItemOpen); menuFile.add(menuItemExit); mb.add(menuFile); JPanel buttonPanel = new JPanel(); FlowLayout layout = new FlowLayout(FlowLayout.CENTER, 20, 20); buttonPanel.setLayout(layout); buttonPanel.setBackground(Color.gray); JButton buttonDraw = new JButton("绘图"); buttonDraw.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) {typeFlag = 1; } }); buttonPanel.add(buttonDraw); JButton buttonLine = new JButton("直线"); buttonLine.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) {typeFlag = 2; } }); buttonPanel.add(buttonLine); JButton buttonRect = new JButton("矩形"); buttonRect.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) {typeFlag = 3; } }); buttonPanel.add(buttonRect);
JButton buttonEllipse = new JButton("椭圆"); buttonEllipse.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) {typeFlag = 4; } }); buttonPanel.add(buttonEllipse); JButton buttonDrop = new JButton("清除"); buttonDrop.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) {typeFlag = 5;g2.setColor(Color.white);g2.fillRect(0 , 0 ,AREA_WIDTH , AREA_HEIGHT);drawArea.repaint(); } }); buttonPanel.add(buttonDrop); JButton buttonColorChoose = new JButton("选择颜色"); buttonColorChoose.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) {do_buttonColorChoose_actionPerformed(arg0); } }); buttonPanel.add(buttonColorChoose); buttonShowColor = new JButton(""); buttonPanel.add(buttonShowColor); JLabel label = new JLabel("边框:"); buttonPanel.add(label);JComboBox combox = new JComboBox(); for(int i=1; i<=36; i++){combox.addItem(i); } combox.addItemListener(new ItemListener() {public void itemStateChanged(ItemEvent e) { strokeTemp = Integer.parseInt(e.getItem().toString()) ; stroke = new BasicStroke(strokeTemp);}});
篇三:简单画图
当你跟小朋友玩儿的时候,是否有勾勾画画的时候,当小朋友让我们给画个房子、画个汽车的时候,你能信手拈来吗?下面,可以帮我们玩得更尽兴!
《简单易学的画图软件》由:创业找项目整理
链接地址:http://www.gjknj.com/duwu/15485.html
转载请保留,谢谢!