重绘是为了在画布上保留原始痕迹的一种方法,他的目的是用来保存你原始数据,以免退出再进入时数据的丢失。下面以代码举例:
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#重绘Windows窗体标题栏和边框是指使用C#语言来自定义Windows窗体的标题栏和边框的样式,通过使用WndProc方法来截获Windows消息,并实现自定义的绘制过程,从而实现更加个性化的界面。
本教程将深入探讨如何在C#中实现`Checkbox`的重绘,以实现这些高级功能。 首先,我们需要了解Windows Forms中的控件绘制机制。每个Windows Forms控件都有一个`OnPaint`事件,当控件需要更新其外观时,系统会触发这...
在JControls这个压缩包中,每个控件的重绘方法都封装在独立的类或组件中,便于直接引用和学习。开发者可以根据自己的需求,结合这些示例代码,快速实现自定义控件的视觉效果。此外,这些代码还可以帮助理解控件绘制...
在某些情况下,为了实现更复杂或个性化的界面效果,我们可能需要对CListCtrl进行重绘。本篇将深入探讨CListCtrl的重绘机制和如何实现全面的功能。 首先,理解CListCtrl的绘制过程至关重要。CListCtrl默认使用...
本教程将重点讲解如何在Duilib中进行控件的重绘,以实现自定义的视觉效果。 控件重绘是Duilib中实现界面个性化的重要手段。通过重绘,我们可以改变控件的默认外观,比如修改边框样式、调整颜色、添加图案或者动画...
重绘过程中,为了保持性能,可以利用Windows的消息机制,只在必要时(如tab切换、窗口大小改变等)才触发重绘。可以通过`SetRedraw`函数暂时关闭或开启控件的重绘功能,这样可以避免不必要的绘图操作。 除了`...
在这个场景中,我们关注的是`CMyComboBox`,这是一个自定义的组合框(ComboBox)类,它是MFC中的标准`CComboBox`类的扩展,专门为了实现自定义重绘功能而设计。 在MFC中,`CComboBox`类是用来处理Windows API中的...
这时,我们就需要通过自定义重绘来实现这些特殊效果。本文将深入探讨如何利用Delphi的内置PopupMenu组件来实现自绘,以满足不同的UI设计需求。 首先,了解PopupMenus的基本使用。PopupMenus在Delphi中由TPopupMenu...
VC6下重绘groupbox的例子,显示效果比较好看,可用于美化界面。 使用方法为,将XPGroupBox.cpp和XPGroupBox.h添加到你的VC工程中,在界面中添加groupbox,并将其关联到CXPGroupBox类型的变量即可。利用此变量提供的...
8. **性能优化**:避免频繁的重绘操作,可以利用RedrawWindow函数的更新区域参数限制重绘的范围,或者使用UpdateLayeredWindow实现无闪烁的平滑滚动效果。 通过这个资源,开发者可以学习如何将这些技巧应用到自己的...
总结来说,MFC控件重绘涉及对`OnDraw`等函数的重写,以及消息映射机制的利用,以达到定制控件外观的目的。`SkinWin.cpp`和`SkinWin.h`中的代码很可能是实现这一功能的具体实现。通过深入理解这些概念和实践,开发者...
本文将深入探讨如何利用MFC中的CButton控件,并结合GDI+技术来实现不规则形状和透明效果的按钮重绘。 首先,让我们了解CButton控件。它是MFC库中一个基本的用户界面元素,用于创建具有标准按钮功能的窗口。默认情况...
"win32环境下的按钮重绘"是指利用Win32 API(应用程序接口)来改变默认按钮的显示样式,实现独特的视觉效果。本文将深入探讨如何在Win32环境下实现按钮的自定义重绘。 首先,理解Win32 API的基本概念至关重要。它是...
总结起来,`DataGridView`的重绘是通过覆写`OnPaint`方法来实现的,可以利用`Graphics`对象进行各种自定义绘制操作。在本例中,我们展示了如何创建一个渐变色列头的`DataGridView`,这只是一个基本示例,实际上可以...
在编程领域,控件重绘和自定义是增强用户界面(UI)个性化和功能扩展的重要技术。本主题将深入探讨如何对.NET Framework中的`dataGridView`、`button`和`tabControl`这三种常见控件进行重绘和自定义,以实现独特的...
在“BeauButton”这个示例中,可能包含了以上所述的重绘方法,通过对不同状态(如焦点、鼠标悬停、按下等)的按钮进行定制化绘制,实现按钮的动态效果。例如,可能使用GDI+或者位图资源来创建复杂的边框、阴影、高光...
本主题将深入探讨如何进行MFC单文档界面的全部重绘,包括标题栏、工具栏和菜单的自定义重绘。 1. **重绘基础** MFC提供了OnEraseBkgnd()和OnPaint()这两个消息处理函数,用于处理窗口背景的擦除和绘制。重绘SDI...
### C#重绘标题栏和边框的知识点 在C#中,自定义窗口的外观是一种常见的需求,尤其是在创建具有独特界面的应用程序时。本文档将详细介绍如何通过C#编程语言来实现对窗体的标题栏和边框进行重绘。 #### 1. 基本概念...
在本文中,我们将深入探讨"ListView重绘"这一主题,特别是在选中项目背景的自定义化方面,以实现类似WIN8风格的ListView效果。 首先,理解ListView的重绘机制至关重要。ListView控件的重绘涉及到对控件外观的自定义...
总之,子类化并重绘`CTabCtrl`是一种实现自定义标签页界面的有效方法。这涉及到Windows消息处理、GDI绘图技术以及对MFC类库的理解。通过这种方式,开发者可以创造出符合项目需求且具有独特风格的标签页控件。