简单画板-3
实现:1 在窗体上取得画布
2 添加按钮组件后,在点击按钮是按钮要有反应。例如点击直线按钮,调用特定方法获得按钮上的内容后,判断要画的图形形状为直线,再调用画直线的方法画直线。
3点击按钮有反应,是要在按钮上添加监听器,监听器是java.awt包下的类
代码如下:
1 取得画布
/********************省略前半部分***********/
//定义一个画布对象
private java.awt.Graphics g;
//设置关闭窗体
jf.setDefaultCloseOperation(3);
//设置可视化 默认是不可见的 要设置可见才能看见窗体
jf.setVisible(true);
}
//取得画布 一定要在窗体设置可见之后
g=jf.getGraphics();
//创建一个监听器对象
FrameListener framelistener=new FrameListener(jf,g);(具体类在下面)
//将动作监听器添加到按钮上
Line.addActionListener(framelistener);
Reck.addActionListener(framelistener);
Curve.addActionListener(framelistener);
//画布上添加鼠标监听器
jf.addMouseListener(framelistener);
jf.addMouseMotionListener(framelistener);//鼠标拖动监听器的添加方法
}
}
2写一个监听器类 该类实现接口 java.awt.event.ActionListener (实现动作监听) 继承抽象类java.awt.event.MouseAdapter(实现鼠标监听)
public class FrameListener extends java.awt.event.MouseAdapter implements java.awt.event.ActionListener {
/*
* 写一个监听器类
*/
//定义x1,x2,y1,y2 用来存储坐标
private int x1;int x2;int y1;int y2;int x3;int y3;
//定义一个画板对象
private javax.swing.JFrame frame;
//定义一个画布属性
private java.awt.Graphics g;
//定义一个属性 用来获得按钮上的内容
private String command="直线";
//有参构造函数 初始化对象
public FrameListener(javax.swing.JFrame frame,java.awt.Graphics g){
this.frame=frame;
this.g=g;
}
//将接口 实现 将抽象类中的方法重写
//**********动作监听器***************************//
public void actionPerformed(ActionEvent e){
//调用getActionCommand()方法 获得按钮上的内容
command=e.getActionCommand();
}
//**********鼠标监听器***************************//
public void mousePressed(MouseEvent e) {
//获取点击的第一个点坐标
x1=e.getX();
y1=e.getY();
}
public void mouseReleased(MouseEvent e) {
//判断所画的的形状
if(command.equals("直线")){
//获得第二个点坐标
x2=e.getX();
y2=e.getY();
g.drawLine(x1, y1, x2, y2);
}
if(command.equals("矩形")){
x2=e.getX();
y2=e.getY();
g.drawRect(x1, y1, x2-x1, y2-y1);
}
//画曲线要用拖动的方法 曲线实际上是有无数直线画成的
public void mouseDragged(MouseEvent e){
if(command.equals("曲线")){
x2=e.getX();
y2=e.getY();
//画直线
g.drawLine(x1, y1, x2, y2);
//交换坐标
x1=x2;
y1=y2;
}
}
}
- 大小: 37.3 KB
分享到:
相关推荐
纯玩----几何画板--各种常见的简单几何图形,不是课件,就是简单纯玩,不需要莫下载
【标题】"简单画板-4"所涉及的是一个基于编程实现的简易画板应用,主要探讨了如何在计算机程序中创建一个用户可以进行绘画操作的界面。这个项目可能使用了某种编程语言,如JavaScript、Python或Java,来构建一个交互...
物理画板-解密版,下载后安装即可直接使用——初高中物理。
综上所述,"Qt多功能画板-vs2017-qt5.11"项目是一个使用Qt5.11和Visual Studio 2017开发的图形编辑工具,提供了图形绘制、操作和管理的全面功能,对于需要进行图形设计或教学的用户来说非常实用。通过深入学习和理解...
【标题】"超级画板-双击即启动.rar"是一个包含Python源代码和开发文档的毕业设计项目,专为计算机专业学生提供。这个项目的核心是一个交互式的画板应用,用户可以通过双击启动来运行。 【描述】这个项目是用Python...
【C++画板-西北农林C++大作业】是一个基于C++编程语言实现的简易画板程序,它是西北农林科技大学C++课程的一项大作业。这个项目旨在让学生通过实践来掌握C++语言的核心概念,如面向对象编程、图形用户界面(GUI)...
"画板-少儿编程scratch项目源代码文件案例素材.zip" 是一个专门针对少儿编程爱好者提供的资源包,它包含了用Scratch创作的“画板”项目源代码,以及相关的学习素材,是孩子们探索编程艺术的宝贵资料。 首先,让我们...
3. **绘图与颜色操作**:掌握使用画笔工具绘制线条、填充颜色,以及如何改变画笔的粗细、透明度等属性,创作个性化的图案。 4. **条件判断与循环结构**:学习使用“如果...那么...”语句实现条件判断,以及运用...
Scratch,这款由麻省理工学院(MIT)的“终身幼儿园团队”开发的图形化编程工具,旨在为儿童提供一个简单易懂的编程环境,激发他们的创新思维和逻辑能力。"我的画板"是基于Scratch设计的一款游戏案例,适合少儿编程...
这个项目“安卓手绘图片处理画板相关-利用Bitmap做的简单的画板.zip”显然是一个示例,旨在教授如何利用Bitmap创建一个用户可以在其上绘制的简单画板应用。 Bitmap类在Android中用于存储和操作图像,它可以是位图或...
【C# 2010 简易画板】是一个基于C# 2010编程语言开发的简易画图应用程序。这个程序为用户提供了一个简单的画板界面,允许用户进行基本的绘画操作,比如绘制直线、曲线、矩形、椭圆等图形,并能进行颜色选择、画笔...
Scratch是由麻省理工学院(MIT)的“终身幼儿园团队”开发的一款图形化编程工具,它通过积木式的编程方式,让编程变得简单有趣,适合初学者尤其是儿童进行学习。 在《神奇的画板》这个项目中,孩子们将接触到以下几...
这个简易画板程序是学习Qt GUI编程的一个良好起点,涵盖了基本的窗口创建、事件处理和图形绘制。随着技能的提升,可以进一步优化程序,如添加撤销/重做功能、多层绘图、自定义形状工具等。Qt提供的强大功能使得...
《几何画板》软件是由美国Key Curriculum Press公司制作并出版的数学软件,它的全名是《几何画板--21世纪的动态几何》。1996年我国教育部全国中小学计算机教育研究中心开始大力推广“几何画板”软件,以几何画板软件...
【资源说明】 C++程序开发基于Qt实现的简单绘画板程序源码+项目说明....3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
几何画板是一款强大的动态几何软件,它允许用户创建...总之,“几何画板自定义工具包-800多个小工具”是提升几何画板使用体验的重要资源,无论你是教师还是学生,都可以从中受益,让几何学习和教学变得更加简单和有趣。
基于Labview设计的画板程序—— 运用用户界面事件结构,模拟一个简单的画图板功能。它有4个功能选项:点(point)、线(line)、圆(circle)和椭圆(oval),一次完成的绘画过程是:在画布上单击鼠标开始绘制→...
例程经过精心编写,简单好用。 2、代码使用KEIL HAL库开发,当前在STM32F103运行,如果是STM32F103其他型号芯片,依然适用,请自行更改KEIL芯片型号以及FLASH容量即可。 3、软件下载时,请注意keil选择项是jlink还是...
例程经过精心编写,简单好用。 2、代码使用KEIL HAL库开发,当前在STM32F103运行,如果是STM32F103其他型号芯片,依然适用,请自行更改KEIL芯片型号以及FLASH容量即可。 3、软件下载时,请注意keil选择项是jlink还是...
AS3简易画板是一款基于ActionScript 3.0(AS3)开发的轻量级交互式画图工具,主要用于在Flash环境中实现用户可以自由绘制线条的功能。它允许用户选择不同的颜色,通过鼠标操作在画板上绘画,为用户提供了一个简单的...