重绘是为了在画布上保留原始痕迹的一种方法,他的目的是用来保存你原始数据,以免退出再进入时数据的丢失。下面以代码举例:
import java.awt.Graphics;
import javax.swing.JFrame;
//继承Jframe来创建窗体
public class Repatine extends JFrame{
//数组的创建
MyShape[] my=null;
public void showUI(){
setSize(600,600);
setTitle("重绘");
setSize(600,600);
setResizable(false);
FlowLayout flo=new FlowLayout();
setLayout(flo);
setDefaultCloseOperation(3);
setVisible(true);
Graphics g=this.getGraphics();
//实例化对象
Paint pa=new Paint();
//属性的赋值
pa.g=g;
my=pa.ms;
//监听器的运用
this.addMouseListener(pa);
}
//重绘方法的实现
public void paint(Graphics g){
//引用父类Jframe的方法
super.paint(g);
for(int i=0;i<my.length;i++){
MyShape m=my[i];
if(m!=null)
//画实心圆
g.fillOval(m.x,m. y,m.x1,m.y1);
}
}
public static void main(String []args){
//实例化对象、以及方法的调用
Repatine rp=new Repatine();
rp.showUI();
}
}
//创建MyShape类用于保存数组数据
public class MyShape {
int x,y,x1,y1;
//构造函数的参数传递
public MyShape(int x,int y,int x1,int y1){
this.x=x;
this.y=y;
this.x1=x1;
this.y1=y1;
}
}
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class Paint implements MouseListener{
//定义属性和数组
Graphics g;
MyShape[] ms=new MyShape[50];
int count=0;
public void mouseClicked(MouseEvent e) {
int x=e.getX();
int y=e.getY();
g.fillOval(x, y, 50, 50);
//将得到的圆数据传递给数组ms[]并保存
MyShape m=new MyShape(x,y,50,50);
ms[count]=m;
count++;
}
}
分享到:
相关推荐
C#重绘windows窗体标题栏和边框,主要描述了C#中窗体的重绘和边框的重绘
VC6下重绘groupbox的例子,显示效果比较好看,可用于美化界面。 使用方法为,将XPGroupBox.cpp和XPGroupBox.h添加到你的VC工程中,在界面中添加groupbox,并将其关联到CXPGroupBox类型的变量即可。利用此变量提供的...
这个项目文件是对mfc的按钮进行美化的一个完整工程,主要是利用图片贴图,来达到美化按钮的效果,把对应的对按钮进行重写的类,封装成了mybutton.h,mybutton.cpp。可以下载下来进行复用,我使用的开发软件是VS2022. ...
每 draw 一次然后改变雨滴的位置然后重绘即可实现雨滴的下落效果 分析完了,那么可以直接写一个类直接继承 View ,然后重写 onDraw() 吗?可以看到效果图中的雨滴的下落速度很快,那么意味着每一帧都要调用 onDraw...
ViewPager的使用:装填了3个圆环控件,每次切换都会重绘当前的圆环,注册页面切换监听器OnPageChangeListener,实现页面下标的改变 底部导航栏界面的设计:由3个button构成,权重相等,利用android:drawableTop属性...
现在,C#创建不规则窗体不是一件难事,下面总结一下: 一、自定义窗体 一般为规则的图形,如圆、椭圆等。 做法:重写Form1_Paint事件(Form1是窗体的名字...即重绘窗体的规则。 二、利用背景图片实现 1. 设置窗体的背景
1.3.2跨域交互即缓存处理方法 7 1.3.3页面自适应机制,即设备自适应与浏览器自适应机制 8 1.3.4 “认我测”质检服务平台的设计和实现 8 1.4 本文的结构安排 8 第二章 多窗口类浏览器设计 11 2.1 多窗口类浏览器需求...
实例119 通过重写虚方法实现加法运算 146 实例120 通过类的多态性确定人类的说话 行为 147 5.4 迭代器和分部类的使用 149 实例121 使用迭代器显示公交车站点 149 实例122 使用迭代器实现倒序遍历 150 实例123 使用...
详细讲解了Crypt++的加密解密的使用以及其它的加密解密方法(例如base64加解密、哈希加解密以及其它的文件加解密),分静态库和动态库方法。 JSCalls_demo js调用的演示源码 树控件拖动 演示了在树控件中来回拖动...
NEAT 开 发 指南 文档 适用于 PT80 系列 移动数据终端 版本记录 版本号 版本描述 发布日期 V 1.0 初始版本。 2012-04-12 V1.1 修改前三章内容 2012-09-25 目录 第一章 关于本手册.....................................
利用Project做好这些事情之后,就要和团队成员一起协作,处理更复杂的项目,所以本书接着介绍团队协作方面的内容。本书最后的部分介绍如何自定义Project以及宏和VBA的相关信息,并通过一些案例来帮助您了解Project的...
利用Project做好这些事情之后,就要和团队成员一起协作,处理更复杂的项目,所以本书接着介绍团队协作方面的内容。本书最后的部分介绍如何自定义Project以及宏和VBA的相关信息,并通过一些案例来帮助您了解Project的...
利用Project做好这些事情之后,就要和团队成员一起协作,处理更复杂的项目,所以本书接着介绍团队协作方面的内容。本书最后的部分介绍如何自定义Project以及宏和VBA的相关信息,并通过一些案例来帮助您了解Project的...
利用Project做好这些事情之后,就要和团队成员一起协作,处理更复杂的项目,所以本书接着介绍团队协作方面的内容。本书最后的部分介绍如何自定义Project以及宏和VBA的相关信息,并通过一些案例来帮助您了解Project的...
利用Project做好这些事情之后,就要和团队成员一起协作,处理更复杂的项目,所以本书接着介绍团队协作方面的内容。本书最后的部分介绍如何自定义Project以及宏和VBA的相关信息,并通过一些案例来帮助您了解Project的...
利用Project做好这些事情之后,就要和团队成员一起协作,处理更复杂的项目,所以本书接着介绍团队协作方面的内容。本书最后的部分介绍如何自定义Project以及宏和VBA的相关信息,并通过一些案例来帮助您了解Project的...
利用Project做好这些事情之后,就要和团队成员一起协作,处理更复杂的项目,所以本书接着介绍团队协作方面的内容。本书最后的部分介绍如何自定义Project以及宏和VBA的相关信息,并通过一些案例来帮助您了解Project的...