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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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展示画板

B.算法实现

运用画板,首先要对工具栏按键和鼠标进行监听,然后对监听进行响应。运行相应程序进行画图

1.监听程序展示:

choice.addItemListener(this);

choice1.addItemListener(this);

btn1.addActionListener(this);

btn2.addActionListener(this);

btn3.addActionListener(this);

btn4.addActionListener(this);

btn5.addActionListener(this);

btn6.addActionListener(this);

addMouseListener(this);

addMouseMotionListener(this);

2.按键监听响应

监听到按键后,判断当前会话工具

public void actionPerformed(ActionEvent e) {

if(e.getSource().equals(btn1))

{

a='1';

}

if(e.getSource().equals(btn2))

{

a='2';

}

if(e.getSource().equals(btn3))

{

a='3';

}

if(e.getSource().equals(btn4))

{

Graphics g = this.getGraphics();

g.clearRect(0, 0, this.getWidth(), this.getHeight());

}

if(e.getSource().equals(btn5))

{

a='4';

}

if(e.getSource().equals(btn6))

{

a='5';

}

}

定义一个变量a,对按键监听进行响应,例如当监听到btn1时赋值a=‘1’(a为char型),即当前工具为直线。但是当监听到btn4时不进行对a赋值而是直接进行清除操作,由于清除操作是对画布进行清除,不参与鼠标事件,因此可以直接执行。

3.鼠标监听响应

a.鼠标按钮按下事件,获取画图起始坐标x0,y0.

public void mousePressed(MouseEvent e)

{

x0=e.getX();

y0=e.getY();

}

b.鼠标移动事件

public void mouseMoved(MouseEvent e){

}

c.鼠标按钮松开事件,此次响应完成对直线,椭圆,矩形进行

绘制。

public void mouseReleased(MouseEvent e)

{

Graphics2D g = (Graphics2D)this.getGraphics();

size=new

BasicStroke(con,BasicStroke.CAP_BUTT,BasicStroke.JOIN_BEVEL);

g.setColor(b);

g.setStroke(size);

switch(a)

{

case'1':

g.drawLine(x0, y0, e.getX(), e.getY());

break;

case'2':

g.drawOval(x0, y0, e.getX() - x0, e.getY() - y0);

break;

case'3':

g.drawRect(x0, y0, e.getX() - x0, e.getY() - y0);

break;

}

}

d.鼠标进入事件:

public void mouseEntered(MouseEvent e){}

e.鼠标离开事件:

public void mouseExited(MouseEvent e){}

• f.鼠标单击事件:

public void mouseClicked(MouseEvent e){}

g.鼠标拖动事件:此次响应实现画笔(随笔画),橡皮的绘制。。

public void mouseDragged(MouseEvent e) {

Graphics2D g = (Graphics2D)this.getGraphics();

相关文档
最新文档