当前位置:文档之家› java画板源代码

java画板源代码

java画板源代码
java画板源代码

程序运行结果预览:

功能:实现了画笔、直线、椭圆、矩形、橡皮檫以及囊括所有颜色的选择。代码简单、有详细注释。

package huaban;

import java.awt.*;

import java.awt.Image;

import java.awt.Toolkit;

import java.awt.event.*;

import javax.swing.*;

import java.util.*;

/**

*

*

* @author lenovo

*

* 1.需要注意一下XOR

* -----------------------setXOR-----------------------

* -----------------------曲线本身函数------------------

* -----------------------覆盖曲线函数------------------

*

*2.基本所有的Drag都是虚枉的

*--------------------------一般都是Release()才是实在的

*/

public class huaban extends JFrame implements MouseListener,MouseMotionListener, AdjustmentListener, ItemListener {

JFrame frame =new JFrame();

JPanel p1 = new JPanel(); // 按钮组区域

JPanel p2 = new JPanel(); // 颜色组区域

JPanel bottom = new JPanel();// 画板组区域

JPanel top = new JPanel();// 顶部区域

ImageIcon icon1 =new ImageIcon("src\\huaban\\picture\\c1.jpg");

ImageIcon icon2 =new ImageIcon("src\\huaban\\picture\\c2.jpg");

ImageIcon icon3 =new ImageIcon("src\\huaban\\picture\\c3.jpg");

ImageIcon icon4 =new ImageIcon("src\\huaban\\picture\\c4.jpg");

ImageIcon icon5 =new ImageIcon("src\\huaban\\picture\\c5.jpg");

ImageIcon icon6 =new ImageIcon("src\\huaban\\picture\\c6.jpg");

ButtonGroup g = new ButtonGroup(); // 按钮组

JRadioButton op1 = new JRadioButton(icon1, true); // 单选框

JRadioButton op2 = new JRadioButton(icon2, false);

JRadioButton op3 = new JRadioButton(icon3, false);

JRadioButton op4 = new JRadioButton(icon4, false);

JRadioButton op5 = new JRadioButton(icon5, false);

JCheckBox op6 = new JCheckBox(icon6); // 复选框

Color c = Color.black; // 设置画笔颜色,也是刚开始的默认颜色

Color c1=Color.white; ///设置按钮背景颜色

int f = 1;

int sx, sy, x, y; // 坐标记录

boolean fill = false;

boolean flag = false;

JScrollBar r1 = new JScrollBar(JScrollBar.HORIZONTAL, 251, 4, 0, 255); // 横向滚动条,初始值,扩展大小,最小值,最大值

JScrollBar g1 = new JScrollBar(JScrollBar.HORIZONTAL, 251, 4, 0, 255);

JScrollBar b1 = new JScrollBar(JScrollBar.HORIZONTAL, 251, 4, 0, 255);

public huaban() {

Image icon = Toolkit.getDefaultToolkit().getImage("src\\huaban\\picture\\c6.jpg");

frame.setIconImage(icon);

getContentPane().setLayout(new BorderLayout()); // 边界布局bottom.setBackground(Color.white); // 设置画板背景颜色

p1.setLayout(new FlowLayout()); // 按钮为流水布局

p1.setBackground(Color.white); //设置背景颜色

p2.setLayout(new GridLayout(1, 3)); // 设置颜色滚动轴布局

p2.add(r1);

p2.add(g1);

p2.add(b1); // 添加滚动轴

r1.setBackground(Color.red); // 设置滚动轴颜色

g1.setBackground(Color.green);

b1.setBackground(Color.blue);

op1.setBackground(c1); //设置按钮背景颜色

op2.setBackground(c1);

op3.setBackground(c1);

op4.setBackground(c1);

op5.setBackground(c1);

op6.setBackground(c1);

g.add(op1); // 单选按钮组

g.add(op2);

g.add(op3);

g.add(op4);

g.add(op5);

// 添加按钮进入面板p1

p1.add(op1);

p1.add(op2);

p1.add(op3);

p1.add(op4);

p1.add(op5);

p1.add(op6);

top.setLayout(new GridLayout(2, 1, 10, 5));

top.add(p1);

top.add(p2); // 顶部区域增加组建p1,p2

op6.addItemListener(this); // 填充按钮增加监听器

r1.addAdjustmentListener(this); // 红色监听器

g1.addAdjustmentListener(this); // 绿色监听器

b1.addAdjustmentListener(this); // 蓝色监听器

op1.addItemListener(this); // 图形选择监听器

op2.addItemListener(this);

op3.addItemListener(this);

op4.addItemListener(this);

op5.addItemListener(this);

bottom.addMouseListener(this); // 画板设置监听器

bottom.addMouseMotionListener(this); // 画板设置监听器

getContentPane().add(top, "North");

getContentPane().add(bottom, "Center"); // 这样设置可以实现画板随窗口大小变化而延伸

this.setTitle("画板"); // 标题

this.setSize(800, 500); // 大小

this.setV isible(true); // 可见

this.setLocationRelativeTo(null); // 居中

this.setDefaultCloseOperation(3); // 随窗口关闭而关闭进程

}

/**

* mousePressed() 设置图形绘画起点mouseReleased() 设置鼠标释放时候进行覆盖重画mouseDragged() 也是画

* 画出的图跟用mouseReleased()画出来的一样,只是更加体现过程。

*/

// 注册鼠标事件监听器

public void mousePressed(MouseEvent e) {

flag = false;

sx = e.getX();

sy = e.getY(); // 获取鼠标按下时的坐标

}

public void mouseReleased(MouseEvent e) {

int x0, y0;

Graphics g = bottom.getGraphics(); // 获取按钮事件

switch (f) { // 覆盖重画

case 2: // 直线

g.drawLine(sx,sy,x,y);

x=e.getX(); y=e.getY();

g.setColor(c);

g.drawLine(sx, sy, x, y);

break;

case 3:

case 4:

x = e.getX();

y = e.getY();

x0 = x > sx ? sx : x;

y0 = y > sy ? sy : y;

g.setColor(c);

if (!fill) {

if (f == 3)

g.drawOval(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

else

g.drawRect(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

}

else {

if (f == 3)

g.fillOval(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

else

g.fillRect(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

}

break;

case 5:

g.setColor(Color.white);

x = e.getX();

y = e.getY();

x0 = x > sx ? sx : x;

y0 = y > sy ? sy : y;

g.fillRect(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

g.drawRect(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

break;

}

}

public void mouseEntered(MouseEvent e) {

}

public void mouseExited(MouseEvent e) {

}

public void mouseClicked(MouseEvent e) {

}

public void mouseMoved(MouseEvent e) {

}

/**

* Dragged()都是最终不实现的,使用XOR 只展现过程曲线

* 最终都会小时,真正实现“画出来”的是Release()

*/

public void mouseDragged(MouseEvent e) {

int x0, y0;

Graphics g = bottom.getGraphics();

switch (f) {

case 1: // 画任意线

x = e.getX();

y = e.getY();

g.setColor(c);

g.drawLine(sx, sy, x, y);

sx = x;

sy = y;

break;

case 2:

g.setColor(c);

if (!flag) {

x = e.getX();

y = e.getY();

g.drawLine(sx, sy, x, y);

flag = true;

}

else {

// 实现重画用白色的画笔重画所有的轨迹也就是抹去拖拽过程中的痕迹

//设置异或进入绘图模式

g.setXORMode(Color.white);

g.drawLine(sx, sy, x, y);

// 开始覆盖

x = e.getX();

y = e.getY();

g.drawLine(sx, sy, x, y);

}

break;

case 3:

case 4:

g.setColor(c);

if (!flag) {

x = e.getX();

y = e.getY();

x0 = x > sx ? sx : x;

y0 = y > sy ? sy : y;

if (!fill) {

if (f == 3)

g.drawOval(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

else

g.drawRect(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

}

else {

if (f == 3)

g.fillOval(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

else

g.fillRect(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

}

flag = true;

}

else {

// 声明异或进入绘图模式

g.setXORMode(Color.white);

x0 = x > sx ? sx : x;

y0 = y > sy ? sy : y;

// 开始画

if (!fill) {

if (f == 3)

g.drawOval(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

else

g.drawRect(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

} else {

if (f == 3)

g.fillOval(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

else

g.fillRect(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

}

// 开始覆盖

x = e.getX();

y = e.getY();

x0 = x > sx ? sx : x;

y0 = y > sy ? sy : y;

if (!fill) {

if (f == 3)

g.drawOval(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

else

g.drawRect(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

} else {

if (f == 3)

g.fillOval(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

else

g.fillRect(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

}

}

break;

case 5:

g.setColor(c);

if (!flag) {

x = e.getX();

y = e.getY();

x0 = x > sx ? sx : x;

y0 = y > sy ? sy : y;

g.drawRect(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

flag = true;

}

else{

// 声明异或进入绘图模式

g.setXORMode(Color.white);

x0 = x > sx ? sx : x;

y0 = y > sy ? sy : y;

//开始绘画

g.drawRect(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

// 开始覆盖

x = e.getX();

y = e.getY();

x0 = x > sx ? sx : x;

y0 = y > sy ? sy : y;

g.drawRect(x0, y0, Math.abs(x - sx), Math.abs(y - sy));

}

break;

}

}

public void adjustmentV alueChanged(AdjustmentEvent e) {

// 滚动条可以产生AdjustmentEvent类代表的调整事件

// 当用户改变滑块位置时会产生调整事件.

// Color(R,G,B)这个是一个调试颜色的函数

// getV alue()是获取当前滚动轴的值

c = new Color(r1.getV alue(), g1.getV alue(), b1.getV alue());

c1=new Color(r1.getV alue(), g1.getV alue(), b1.getV alue());

r1.setBackground(new Color(r1.getV alue(), 0, 0));

g1.setBackground(new Color(0, g1.getV alue(), 0));

b1.setBackground(new Color(0, 0, b1.getV alue()));

p1.setBackground(c);

op1.setBackground(c1); //设置按钮背景颜色

op2.setBackground(c1);

op3.setBackground(c1);

op4.setBackground(c1);

op5.setBackground(c1);

op6.setBackground(c1);

}

public void itemStateChanged(ItemEvent e) {

/**

* 选择事件事件源当在单选按钮组中选择时会产生选择事件当用户单击复选框改变它的选中状态时,会产生选择事件

*/

// instanceof 指出对象是否是特定类的一个实例返回一个布尔值

if (e.getItemSelectable()/* 获取事件源*/instanceof JCheckBox) {

JCheckBox temp = (JCheckBox) e.getItemSelectable(); // 强制转换

fill = temp.isSelected(); // 判断复选框是否被选中

} else { // 单选框

JRadioButton temp = (JRadioButton) e.getItemSelectable();

if (temp == op1)

f = 1; // 自由画

else if (temp == op2)

f = 2; // 直线

else if (temp == op3)

f = 3; // 椭圆

else if (temp == op4)

f = 4; // 矩形

else if (temp == op5)

f = 5; // 橡皮擦

}

}

public static void main(String args[]) {

huaban mainFrame = new huaban();

}

}

JAVA简单画板程序设计实验报告

JAVA期末画板实验报告 课程题目: 运用JAVA语言编写一个画板程序,这个画板要有画图,特殊图形绘制,颜色改变,画笔大小改变等功能。 设计思想: 1.进行界面设计 2.进行算法实现 3.运行调试 4.总结问题 设计过程: A.界面设计 新建一个Jframe容器,然后定义一个panel(Panel convas2),convas2是工具栏。用borderlayout布置容器的边框布局,将工具栏放在NORTH部分。完成界面设计。 add(canvas2,BorderLayout.NORTH); Panel canvas2 = new Panel(); 添加工具按键 Panel canvas2 = new Panel(); Button btn1 = new Button("直线"); Button btn2 = new Button("椭圆"); Button btn3 = new Button("矩形"); Button btn4 = new Button("清除"); Button btn5 = new Button("画笔"); Button btn6 = new Button("橡皮"); Choice choice = new Choice(); Choice choice1 = new Choice(); canvas2.add(choice); canvas2.add(choice1);

canvas2.add(btn1); canvas2.add(btn2); canvas2.add(btn3); canvas2.add(btn4); canvas2.add(btn5); canvas2.add(btn6); 在工具表中,有两个下拉菜单,分别收录画笔的大小和颜色。1.画笔的大小: choice1.add("1"); choice1.add("3"); choice1.add("5"); choice1.add("7"); choice1.add("9"); 2.画笔颜色 choice.add("黑色"); choice.add("蓝色"); choice.add("红色"); choice.add("黄色"); choice.add("绿色"); 3展示画板

JAVA课程设计画图软件

package hh; import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import java.awt.geom.*; class Point { int x,y; Color col; int tool; int boarder; Point(int x, int y, Color col, int tool, int boarder) { this.x = x; this.y = y; this.col = col; this.tool = tool; this.boarder = boarder; } } /* *BasicStroke *Choice *validate(); **/ class paintboard extends Frame implements ActionListener, MouseMotionListener, MouseListener, ItemListener { int xx0=0,yy0=0; int xx1=0,yy1=0; int type=6; int x = -1, y = -1; int con = 1; //画笔大小 int Econ = 5; //橡皮大小 int toolFlag = 0; //toolFlag:工具标记 //toolFlag工具对应表: //(0--画笔);(1--橡皮);(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; // *工具面板--画笔,直线,圆,矩形,多边形,橡皮,清除*/ Panel toolPanel; Button eraser, drLine,drCircle,drRect; Button clear ,pen; Choice ColChoice,SizeChoice,EraserChoice; Button colchooser; Label 颜色,大小B,大小E; paintboard(String s)//构造函数 { super(s); addMouseMotionListener(this); addMouseListener(this); paintInfo = new Vector(); /*各工具按钮及选择项*/ //颜色选择 ColChoice = new Choice(); ColChoice.add("黑色"); ColChoice.add("红色"); ColChoice.add("蓝色"); ColChoice.add("绿色"); ColChoice.addItemListener(this); //画笔大小选择 SizeChoice = new Choice(); SizeChoice.add("1"); SizeChoice.add("3"); SizeChoice.add("5"); SizeChoice.add("7"); SizeChoice.add("9"); SizeChoice.addItemListener(this); //橡皮大小选择 EraserChoice = new Choice();

Java画图软件设计报告

佛山科学技术学院 《可视化编程技术》课程设计报告 画图软件设计 学生姓名:周敏婷 学号: 2011914123 年级专业:11级教育技术学2班指导老师:容汝佳 学院:教育科学学院 广东★佛山 提交日期:2013年6月

目录 1. 前言 (2) 2.概要设计 (3) 2.1 开发环境 (3) 2.2 画图软件功能 (3) 2.3 界面设计 (3) 2.4 类的框架结构图 (4) 3. 详细设计 (4) 3.1 使用的JAVA类的说明 (4) 3.2 类的主要方法 (5) 3.2.1 颜色选择

器 (5) 3.2.2 控制画笔样式 (5) 3.2.3 选取颜色按钮的监听件类 (6) 3.2.4 设计总体认识 (6) 3.2.5 程序流程图 (7) 4. 运行结果 (7) 5. 测试分析 (8) 5.1 程序运行情况 (8) 6. 源程序 (8) 参考文献 (14) 设计总

结 (14)

摘要:该程序是一个图形界面的简单的java画图软件,具有良好的界面,使用人员能快捷简单地进行操作。该画图软件操作较为简单,只需要一直按着左键就能根据你鼠标移动的方面,画出你想要的图案。你也可以选择你自己想到的颜色和画笔的粗细。而且可以显示你当前的画笔的状态。界面为灰白对称。是一个非常简单的作图工具,让人能轻松上手。 关键字:java,画图类,方法,事件 1 前言 随着科学技术的不断发展,计算机已经成为我们工作学习和生活中不可缺少的工具。文本编辑器是个人计算机最司空见惯的应用程序了,在学习了Java语言之后,我决定使用Java语言编写一个简单的画图工具,可以实现简单的画图作图功能,满足日常基本的工作学习和娱乐需要。 Java是由Sun公司开发的新一代纯面向对象的网络编程语言。其目标是建立一种在任意种机器、任一种操作系统的网络环境中运行的软件,实行所谓的“程序写一次,到处运行”的目标。正因为如此,Java已成为当今Internet上最流行、最受欢迎的一种程序开发语言。 Java开发小组把Java按特性分为基本版、移动版、企业版,每个版本有一个软件开发包。Java基本版本叫Java 2标准版(Java 2 Standard Edition,J2SE),它包含建立Java应用程序或者是Applet 所需的应用程序编程接口(API)。Java 2移动版(The Java 2 Mobile Edition,J2ME)包含创建无线Java应用程序的API。还有Java 2 企业版(The Java 2 Enterprise,J2EE)是J2SE的增强版本,包含建立多层架构应用程序API。 Java语言是由C++语言发展起而来的,是一种彻底的面向对象的程序设计语言。作为一种纯面向对象的程序设计语言,它非常适合大型软件的开发。Java语言去掉了C++语言的一些容易引起错误的特性。Java语言的特点有:面向对象、跨平台、安全性、多线程和图

Java画图板课程设计报告

目录 1 引言................................................................................................... 错误!未定义书签。 课程设计选题 .................................................................................. 错误!未定义书签。 课程设计的目的 .............................................................................. 错误!未定义书签。 本选题的设计背景.......................................................................... 错误!未定义书签。 2 需求分析 .............................................................................................. 错误!未定义书签。 功能需求......................................................................................... 错误!未定义书签。 软件开发运行环境........................................................................ 错误!未定义书签。 3 总体设计 .............................................................................................. 错误!未定义书签。 软件结构设计 ................................................................................ 错误!未定义书签。 结构设计................................................................................. 错误!未定义书签。 软件功能模块及主要类设计 ......................................................... 错误!未定义书签。 功能描述 ................................................................................... 错误!未定义书签。 总体结构图............................................................................... 错误!未定义书签。 主要类设计............................................................................... 错误!未定义书签。 4 详细设计与实现.................................................................................. 错误!未定义书签。 主界面............................................................................................. 错误!未定义书签。 主界面功能设计....................................................................... 错误!未定义书签。 主界面设计............................................................................... 错误!未定义书签。 主界面主要代码....................................................................... 错误!未定义书签。 菜单栏............................................................................................. 错误!未定义书签。 菜单栏功能设计....................................................................... 错误!未定义书签。 菜单栏界面设计....................................................................... 错误!未定义书签。 菜单栏主要代码....................................................................... 错误!未定义书签。 工具栏............................................................................................. 错误!未定义书签。 工具栏功能设计....................................................................... 错误!未定义书签。 工具栏界面设计....................................................................... 错误!未定义书签。 工具栏主要代码....................................................................... 错误!未定义书签。

java画板程序

简单的Java画板程序 import java.awt.*; import java.awt.event.*; import java.awt.image.*; import java.io.*; import javax.imageio.*; import javax.swing.*; public class huaban { JFrame f=new JFrame("画板"); //JPanel P1=new JPanel(); //JPanel P2=new JPanel(); JToolBar jtb=new JToolBar("工具"); DrawCanvas drawArea=new DrawCanvas(); int preX = -1; int preY = -1; int X=0; float con=1; int Econ=5; JButton btn0=new JButton(new ImageIcon("image/12.png"));//打开JButton btn1=new JButton(new ImageIcon("image/13.png"));//保存JButton btn2=new JButton(new ImageIcon("image/1.png"));//画笔 JButton btn3=new JButton(new ImageIcon("image/2.png"));//直线 //JButton btn4=new JButton("曲线"); JButton btn5=new JButton(new ImageIcon("image/3.png"));//椭圆 JButton btn6=new JButton(new ImageIcon("image/4.png"));//矩形 JButton btn7=new JButton(new ImageIcon("image/7.png"));//调色板//JButton btn8=new JButton("当前颜色"); JButton btn9=new JButton(new ImageIcon("image/14.png"));//橡皮JButton btn10=new JButton(new ImageIcon("image/6.png"));//清除JButton btn11=new JButton(new ImageIcon("image/8.png"));//黑色JButton btn12=new JButton(new ImageIcon("image/9.png"));//红色JButton btn13=new JButton(new ImageIcon("image/10.png"));//绿色JButton btn14=new JButton(new ImageIcon("image/11.png"));//蓝色JButton btn15=new JButton("1");//画笔大小 JButton btn16=new JButton("2"); JButton btn17=new JButton("3"); JButton btn18=new JButton("4"); JButton btn19=new JButton("1");//橡皮大小

java简易画图板

华北科技学院 课程设计说明书 班级: 网络B101 设计题目: 画图板软件开发和设计 评语:_________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:____评阅教师:_____ 目录 1 引言 (1)

1.1课程设计选题 (1) 1.2课程设计的目的 (1) 1.3本选题的设计背景 (1) 2 需求分析 (1) 2.1 功能需求 (1) 2.2 系统的开发运行环境 (2) 3 总体设计 (2) 3.1 系统体系结构设计 (2) 3.2系统功能模块及主要类设计 (3) 4 详细设计与实现 (6) 4.1 菜单栏模块 (6) 4.2 文字字型工具栏模块 (7) 4.3 工具栏模块 (8) 4.4 颜色选择面板模块 (10) 4.5 鼠标状态栏模块 (12) 4.6 画图区域以及整体布局模块 (13) 5 小结和展望 (15) 参考文献 (17) 附录 (17) 使用说明书 (17)

1引言 1.1课程设计选题 《画图板软件开发和设计》 1.2课程设计的目的 使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。 1.3本选题的设计背景 平时生活中,我们会需要处理一些基本的图像,也有可能需要花一些简单的图像,平时所使用的图形处理工具有 PhotoShop、Windows 画图工具等,其中PhotoShop 是一款非常强大的图形处理工具,Windows 画图工具则是一款较为简单的画图工具,功能较为简单,用Windows画图工具,是一种比较简单与具有代表性的画图工具,虽然功能不够强大,但具有大多图片处理程序所必需的基本功能:铅笔画图、各种数学函数图形、填色、取色、橡皮擦等等。所以这次课程设计我做的就是一个仿照Windows画板的程序。 通过画图板软件开发与设计,更深刻地体会java语言较之其他语言在图形用户界面的优势。熟悉java语言中常用的关于画图的各个类的功能和常用的方法(java图形用户界面中的众多函数与类的关系),并在实验过程中加深对java语言的理解与运用。 2需求分析 2.1 功能需求 对于绘图软件,应具备最基本的绘制直线,矩形框,圆形框,椭圆框等最基本功能,此外,要可以对绘制的图形进行修改;将绘制好的图形进行保存,打开以前保存的图形;在需要的时候,可以绘制实心矩形,实心圆形,实心椭圆等常见的几何图形。可

用java实现的一个简单的画板程序

一个实现简单画板功能的java程序,可以画直线,长方形,椭圆,曲线。 主类 import java.awt.Color; import javax.swing.*; public class painter { public static void main(String [] args){ JPanel jpl = new Board(); JFrame painter =new JFrame(); painter.add(jpl); painter.setBackground(Color.WHITE); painter.setTitle("Painter"); painter.setSize(400,200); painter.setLocationRelativeTo(null); painter.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); painter.setVisible(true); } } 加了选择事件的画板 import java.awt.*; import javax.swing.*; import java.awt.event.*; @SuppressWarnings("serial") public class Choose extends Board{ JRadioButton jrb1=new JRadioButton("Line"); JRadioButton jrb2=new JRadioButton("Rectangle"); JRadioButton jrb3=new JRadioButton("Oval"); JRadioButton jrb4=new JRadioButton("Curve"); JButton jbt = new JButton("Clear"); public Choose(){ JPanel jp1=new JPanel(); jp1.setLayout(new GridLayout(5,1,5,5)); jp1.add(jrb1); jp1.add(jrb2); jp1.add(jrb3); jp1.add(jrb4); jp1.add(jbt); add(jp1); ButtonGroup group = new ButtonGroup(); group.add(jrb1); group.add(jrb2);

JAVA简单画板程序设计实验报告

J A V A简单画板程序设计 实验报告 Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】

JAVA期末画板实验报告 课程题目: 运用JAVA语言编写一个画板程序,这个画板要有画图,特殊图形绘制,颜色改变,画笔大小改变等功能。 设计思想: 1.进行界面设计 2.进行算法实现 3.运行调试 4.总结问题 设计过程: A.界面设计 B.新建一个Jframe容器,然后定义一个panel( Panel convas2), convas2是工具栏。用borderlayout布置容器的边框布局,将工具栏放在NORTH部分。完成界面设计。 add(canvas2,; Panel canvas2 = new Panel(); 添加工具按键 Panel canvas2 = new Panel(); Button btn1 = new Button("直线"); Button btn2 = new Button("椭圆"); Button btn3 = new Button("矩形"); Button btn4 = new Button("清除");

Button btn5 = new Button("画笔"); Button btn6 = new Button("橡皮"); Choice choice = new Choice(); Choice choice1 = new Choice(); (choice); (choice1); (btn1); (btn2); (btn3); (btn4); (btn5); (btn6); 在工具表中,有两个下拉菜单,分别收录画笔的大小和颜色。 1.画笔的大小: ("1"); ("3"); ("5"); ("7"); ("9"); 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);

JAVA实验报告 简单绘图程序

实验三绘制图形 一、实验目的 学会JButton的使用,能进行JButton的基本操作,能使用JButton构造一个图形界面框架通过实验熟悉swing图形用户界面程序设计熟悉java中的事件处理模型,每个事件动作代表的意义进一步提高编程能力,学会独立思考,学会上网查找资料决问题。 二、实验内容 设计一个程序,该程序能够绘制基本的图形(包括圆形、矩形、直线等);要求有一个简单易操作的用户界面(包括菜单、按钮等组件)。编写的程序要求能够实现保存和读取的功能。 三、实验代码 Main.java import ; import ; import ; import import import import winpaint.WinToolBar; import winpaint.windowsPaint; public class Main { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub JPanel paintWin = new windowsPaint("画图"); paintWin.setBounds(0, 30, 1000, 1000); paintWin.setLayout(null); paintWin.setVisible(true); JToolBar tool = new WinToolBar((windowsPaint)paintWin); tool.setBounds(0, 0, 1000, 30); tool.setVisible(true); JFrame frame = new JFrame();

Java画图板程序设计报告

西安科技大学Java语言课程设计报告 ¥

题目:画图板应用程序开发 & 班级: 学号: 姓名: 2010年 12 月 目录 1 设计题目及具体要求 (3) · 2 总体设计 (6) 3 详细设计与实现 (4) 4 系统测试 (11) 5 设计小结 (31) 参考文献 $

: 1、设计题目及具体要求 题目需求 ? 1. 设计题目:小画图板的开发。 2. 重点分析 本软件的重难点为主窗体的设计、菜单栏和工具栏的设计、事件响应的处理、画图的基本功能的实现。 3. 实现功能

1.新建一个空白图形文件:用于绘制新的图形。 2.打开或保存一个图形文件,便于对图形文件的管理。 3.绘制一些基本的图形组件:直线,矩形,实心矩形,椭圆,实心椭圆,圆,实心圆,圆角矩形,实心圆角矩形等。 4.用鼠标在绘图板上单击拖动进行随笔花。 5.` 6.橡皮擦:可以将已绘制的图形擦掉。 7.添加文字:可以在绘图区域内添加文字。 8.选择文字的字体:通过一个下拉式的选择条,可以选中所需要的字体。本程序中包括:宋体,隶书,华文彩云,仿宋-GB2312,华文行楷,Times New Roman,Serif,Monospaced,SonsSerif,Garamond。当然,在下面的程序分析中可以看到,由于设置了字体选择数组,使得可以随意添加系统支持的任何字体。大大方便和简化了程序设计。 9.选择文字的字体风格:通过两个复选框按钮,可以选择需要的字体风格,包括:粗体,斜体,用同时选中两者,只选择其中一种或两者都不选中3种选择方式。10.设置画笔的颜色:可以选择当前绘制图形的画笔颜色,让图形更加丰富多彩,生动活泼。 10. 设置画笔的粗细:该选项在作用于基本图形组件和文字时,它的效果是不同的。 当作用于绘制图形组建时,它的作用是改变画笔绘制线条的粗细;当作用于文字时,它的作用是改变文字的大小。 ;

实现鼠标画图的Java程序代码

实现鼠标画图的Java程序代码 import java.awt.Color; import java.awt.Frame; import java.awt.Graphics; import java.awt.Point; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.ArrayList; import java.util.Iterator; public class MyMouseAdapter { public static void main(String[]args){ new MyFrame5(“drawing”); } } class MyFrame5 extends Frame{ ArrayList points=null; MyFrame5(String s){ super(s); points=new ArrayList(); setLay out(null); setBounds(300,300,400,300); this.setBackground(new Color(204,204,255)); setVisible(true); this.addMouseListener(new Monitor5()); } public void paint(Graphics g){ Iterator i=points.iterator(); while(i.hasNext()){ Point p=(Point)i.next(); g.setColor(Color.blue); g.fillOval(p.x,p.y,10,10); } } public void addPoint(Point p){ points.add(p); } }

画图画板设计模式课程设计任务书

长沙学院课程设计说明书 题目设计模式课程设计 系(部) 数学与计算机科学系 专业(班级) 数媒2班 姓名胡辉衡 学号B20140304401 指导教师朱建凯 起止日期2016年12月19日

课程设计任务书 课程名称:设计模式课程设计 设计题目:基于设计模式的绘图程序 已知技术参数和设计要求: 1.问题描述(功能要求): 1.需求分析 该系统是一个画图程序,我们要用设计模式的思想来设计系统结构,然后实现基本图形的绘制功能。 1.1 设计模式要求 至少在其中运用 3 种模式,其中涉及到的模式有装饰模式、策略模式、桥梁模式三种。 1.2 画图基本要求 能实现基本图形的绘制功能 1.3 画图高级要求 实现图形的操作(如选取、移动、放大、缩小、改变颜色、改变线形等)和持久化(利用文件或利用数据库)。 1.4 参考界面

图1 参考效果图1 图2 参考效果图2 2. 运行环境要求: Windows操作系统;

Eclipse 3. 技术要求: 给出至少3种设计模式,要求具体说明使用每种设计模式的动机,画出类图,并代码实现,然后评价该设计模式的优缺点。 设计工作量: 2周 工作计划: (1) 2014级软件工程 4课时:讲授 32课时:上机、调试。计算机系机房 4课时:答辩。计算机系机房。 指导教师签名:日期: 教研室主任签名:日期: 系主任签名:日期:

长沙学院课程设计鉴定表

目录 第1章系统需求 (8) 1.1系统总需求 (8) 1.2功能需求 (8) 第3章系统设计 (9) 3.1系统总功能模块设计 (9) 3.2子功能模块设计 (9) 3.2.1构建基本图形 (9) 3.2.2装饰模式组合图形 (10) 3.2.3桥接模式修饰图形颜色线条粗细 (10) 第4章系统实现 (11) 4.1简单工厂模式绘制基本图形 (11) 4.1.1装饰模式图形组合 (13) 4.1.2桥接模式改变粗细绘制图形 (14) 第5章系统测试 (15) 5.1测试目的 (15) 5.2测试手段 (15) 5.3测试用例 (15) 5.3.1登陆界面测试 (15) 结论 (16) 参考文献 (17) 结束语 (18) 附录 (19)

Java画图板程序设计报告

西安科技大学Java语言课程设计报告 题目:画图板应用程序开发 班级: 学号: 姓名: 2010年 12 月

目录 1 设计题目及具体要求 (3) 2 总体设计 (6) 3 详细设计与实现 (4) 4 系统测试 (11) 5 设计小结 (31) 参考文献

1、设计题目及具体要求 1.1 题目需求 1. 设计题目:小画图板的开发。 2. 重点分析 本软件的重难点为主窗体的设计、菜单栏和工具栏的设计、事件响应的处理、画图的基本功能的实现。 3. 实现功能 1.新建一个空白图形文件:用于绘制新的图形。 2.打开或保存一个图形文件,便于对图形文件的管理。 3.绘制一些基本的图形组件:直线,矩形,实心矩形,椭圆,实心椭圆,圆,实心圆, 圆角矩形,实心圆角矩形等。 4.用鼠标在绘图板上单击拖动进行随笔花。 5.橡皮擦:可以将已绘制的图形擦掉。 6.添加文字:可以在绘图区域内添加文字。 7.选择文字的字体:通过一个下拉式的选择条,可以选中所需要的字体。本程序中包 括:宋体,隶书,华文彩云,仿宋-GB2312,华文行楷,Times New Roman,Serif,Monospaced,SonsSerif,Garamond。当然,在下面的程序分析中可以看到,由于设置了字体选择数组,使得可以随意添加系统支持的任何字体。大大方便和简化了程序设计。 8.选择文字的字体风格:通过两个复选框按钮,可以选择需要的字体风格,包括:粗 体,斜体,用同时选中两者,只选择其中一种或两者都不选中3种选择方式。9.设置画笔的颜色:可以选择当前绘制图形的画笔颜色,让图形更加丰富多彩,生动活泼。 10. 设置画笔的粗细:该选项在作用于基本图形组件和文字时,它的效果是不同的。当 作用于绘制图形组建时,它的作用是改变画笔绘制线条的粗细;当作用于文字时,它的作用是改变文字的大小。

课程设计-JAVA-画板-模拟画图工具

目录 1 课题介绍 (1) 1.1 课程设计目的 (1) 1.2 课程设计要求 (1) 1.3 课程设计主要知识点 (1) 2 总体设计 (2) 2.1 画板界面设计图 (2) 2.2 模块概述 (2) 2.2.1 文件操作 (2) 2.2.2 图形绘制 (2) 3 详细设计与实现 (4) 3.1 框架类DrawGraphic (4) 3.1.1菜单 (4) 3.1.2工具栏 (6) 3.1.3画图区域 (7) 3.2 基本图形类 (10) 3.2.1 父类Drawings (10) 3.2.2 子类(只列出部分) (10) 4 设计中的难点 (12) 4.1多态与动态绑定 (12) 4.2重绘的理解 (12) 4.3文件的新建、打开和保存 (12) 5 运行测试 (13) 6 总结 (15) 参考文献 (16)

模拟画图 1 1 课题介绍 1.1 课程设计目的 课程设计题目:模拟画图 要求设计一个程序,模拟Windows中的画图程序,实现图形图像的编辑,修改,保存等功能。 1.2 课程设计要求 (1)程序中必须包括“新建”、“打开”、“保存”,用户可以选择,实现对文件的操作; (2)画图板的绘图按钮用来画出不同的图形,包括实心图形和空心的图形; (3)可以对线条的颜色和粗细进行设置,也可以对填充图形的颜色进行设置和更改。 1.3 课程设计主要知识点 (1)框架类DrawGraphic继承了Swing类库中JFrame,并且用到JButton,JLabel,JPanel,等Swing类库中的组件进行窗体设计; (2)选择一个文件,用到组件JFileChooser; (3)选择颜色,用到组件JColorChooser; (4)弹出标准对话框,用到组件JOptionPane; (5)在单击绘图按钮时,所触发的动作通过方法addActionListener和ActionListener接口的actionPerformed方法共同实现; (6)MouseAdapter和MouseMotionAdapter用来完成鼠标各种事件的相应操作,包括单击、移动、拖拽等; (7)在界面设计的时候结合BorderLayout和GridLayout两种布局格式; (8)在添加监听器的时候有用到内部匿名类和内部类,所以要熟悉它们的构造方法和使用方法,从中体会持有对方引用的这一设计思想。 (9)在图形绘制的时候,用到Graphics类,其揭示了所有图形系统几乎都采用的一种机制,就是如何在窗口上画出一些图形来,当窗口构造出来的时候里面有一支画笔,即Graphics的一个对象,当窗口调用paint方法的时候,系统会把画笔自动传递给它,拿到画笔,重写paint方法就实现了在窗口上绘制基本图形。

java画图板课程设计

计算机与信息工程系《JA V A程序设计》课程设计 画图板 专业计算机 班级计000001 学号00000 姓名0000 E-Mail https://www.doczj.com/doc/c614563223.html, 电话10000000032 时间2000006 承德石油高等专科学校

摘要:本程序通过调用JA V A提供的BorderLayout,Button, Color;Container;Graphics;Panel;ButtonGroup;JFrame;JPanel;UIManager 等基本类进行了简单的界面设计,运用了JA V A中类的继承特性实现 了对父类方法的调用,并多次使用CASE语句实现绘图菜单的选择,运用了适配器类简化了监听器类的重写工作。 关键字:UIManager、ActionListener 1. 课程设计介绍 本程序完成的是一个类似于Windows画图板的绘图程序。由于不是开发和设计专业的绘图和图像制作软件,所以,完成的程序的简单功能包括以下几项: 1.新建一个空白图形文件:用于绘制新的图形。 2.打开或保存一个图形文件,便于对图形文件的管理。 3.绘制一些基本的画图组件:直线、矩形、实心矩形、椭圆、实心椭圆、圆、实心圆、圆角矩形、实心圆角矩形等。 4.可以用鼠标在绘图面板上单击拖动进行随笔画。 5.橡皮擦:可以将已绘制好的图形擦掉。 6.添加文字:可以在绘图区域内添加文字。 7.选择文字的字体:通过一个下拉式的选择条,可以选中所需要的字体。本程序中包括:宋体、隶书、华文彩云、仿宋_GB2312、华文行楷、方正舒体、Times New Roman、Serif、Monospaced、SonsSerif、Garamond。当然,在下面的的程序分析中可以看到,由于我们灵活设置了字体数组,是的可以随意添加系统支持的任何字体。大大方便和简化了程序设计。 8.选择文字的字体风格:通过两个复选框按钮,可以选择需要的字体风格,包括:粗体、斜体,使用者有三种选择方式,包括:①同时选中两者、②只选择其中一种、③两者都不选中。 9.设置画笔的颜色:可以选择当前绘制图形的画笔颜色,让图形更加丰富多彩、生动活泼。

相关主题
文本预览
相关文档 最新文档