`

关于paint

 
阅读更多

要搞明白paint函数,首先要明白哪些类里面有paint

通过查阅API发现:

java.awt.Component -java.awt.Container -javax.swing.JComponent中都有paint函数,但这几个paint函数是不同的。我们在这里主要关注的是JComponet中的函数。

API

Paint

public void paint(Graphics g)

Swing 调用,以绘制组件。应用程序不应直接调用 paint,而是应该使用 repaint 方法来安排重绘组件。

此方法实际上将绘制工作委托给三个受保护的方法:paintComponentpaintBorder  paintChildren。按列出的顺序调用这些方法,以确保子组件出现在组件本身的顶部。一般而言,不应在分配给边框的 insets 区域绘制组件及其子组件。子类可以始终只重写此方法。只想特殊化 UI(外观)委的 paint 方法的子类应该只重写 paintComponent.

 

java中重写paint方法时,要在该方法中首先通过super.paint()调用父类的paint方法,这样才能保留原来的paint功能。

 

还有一段网上摘抄的话比较有意思,这也是从java文档中翻译过来的:

轻量级部件是怎样被绘制的
  轻量级部件需要一个处在容器体系上的重量级部件提供进行绘画的场所。当这个重量级祖宗被告知要绘制自身的窗体时,它必须把这个绘画的请求转化为对其所有子孙的绘画请求。这是由java.awt.Containerpaint()方法处理的,该方法调用包容于其内的所有可见的、并且与绘画区相交的轻量级部件的paint()方法。因此对于所有覆盖了paint()方法的Container子类(轻量级重量级)需要立刻做下面的事情:   
    
   public class MyContainer extends Container {
   public void paint(Graphics g) {
   // paint my contents first...
   // then, make sure lightweight children paint
   super.paint(g);  
   }
   }
    
   如果没有super.paint(),那么容器(container)的轻量级子孙类就不会显示出来(这是一个非常普遍的问题,自从JDK1.1初次引进轻量级部件之后)

 

未完,待续中。。。。。

分享到:
评论

相关推荐

    关于Paint,Canvas,Path的Demo

    5. 可能还有关于文字绘制的例子,如在画布上添加文本并调整其样式。 这个Demo对于学习Android图形图像编程非常有帮助,通过实际动手实践,你可以更好地掌握如何灵活运用这些工具,创造出个性化和交互性强的用户界面...

    paint.net 最后一个x86版本离线安装包

    《关于paint.net最后一个x86版本离线安装包的详解》 在计算机软件领域,paint.net是一款广受欢迎的图像编辑工具,尤其以其易用性和强大的功能而受到赞誉。本篇文章将详细探讨“paint.net 最后一个x86版本离线安装包...

    paint.net3.36

    《关于paint.net 3.36的debug编译与使用详解》 Paint.NET是一款轻量级、易用的图像编辑软件,尤其受到初级和中级用户的欢迎。本文将深入探讨其3.36版本的debug编译过程以及相关注意事项,帮助开发者更好地理解和...

    Android应用源码之(Paint画笔)-IT计算机-毕业设计.zip

    以下是关于Paint画笔在Android开发中的详细知识点: 1. **Paint对象创建与初始化**:在Android中,首先需要创建一个Paint对象,并通过set方法设置相应的属性,如颜色、风格、字体大小等。例如,`Paint paint = new ...

    安卓Android源码——(Paint画笔).zip

    本资料包"安卓Android源码——(Paint画笔).zip"可能包含了关于Paint类的详细源码分析,帮助开发者深入理解其工作原理和用法。 1. **Paint类简介** Paint类是Android SDK中的`android.graphics.Paint`,它提供了一...

    paint.2 exe

    2. SysInfo.dll:可能是一个系统信息模块,提供关于计算机硬件或软件配置的信息,可能用于袜机系统识别和适配不同的硬件环境。 3. 袜机制版系统(简易)说明书.doc:这是一个文档文件,很可能包含了如何使用这个袜机...

    paint.net 3.36源码 vs2010可直接运行

    源码中关于控件布局、事件处理和数据绑定的部分值得深入研究。 2. 自定义控件:Paint.NET有很多定制的UI控件,如画刷选择、颜色选择器等,这些都是学习UI设计的好实例。 四、插件系统 1. 插件架构:Paint.NET的...

    paint.net 源码

    源码中关于插件加载和管理的部分,可以教会我们如何在C#程序中实现插件架构,这对于开发可扩展的应用程序非常有借鉴价值。 总的来说,Paint.NET的源码为我们提供了一个深入学习C#图形处理和软件开发的宝贵案例。...

    paint_paintinc++_

    描述中提到 "This code sample code for paint brush" 暗示这是一个关于实现画刷功能的代码片段。在计算机图形学中,画刷通常用于在屏幕上绘制线条、形状以及填充颜色。这种功能通常涉及到像素操作、颜色处理和图形...

    C#065用paint方法渐变的窗口背景

    在这个示例中,“C#065用paint方法渐变的窗口背景”是一个关于如何利用C#的Paint事件和Graphics类来创建一个具有渐变背景的窗口的应用。下面将详细讲解这一知识点。 首先,我们需要理解C#中的Paint事件。Paint事件...

    java-paint.rar_java paint_paint_paint java_绘图_绘图程序 java

    在`www.pudn.com.txt`文件中,可能包含了关于这个绘图程序的更多详细信息,例如源代码、使用说明或问题解答。不过,由于这个压缩包没有提供该文件的具体内容,无法在此详细分析。 总的来说,Java的绘图功能强大且...

    1_paint2.zip

    如果"paint2"是一个文件,它可能是一个图像文件(如.jpg、.png或.bmp),一个软件的可执行文件(如.exe),或者是关于如何使用"Paint"的文本文档(如.docx或.pdf)。如果是一个文件夹,里面可能包含了多样的资源,如...

    神奇的paint方法

    总结来说,"神奇的paint方法"是一个关于Java GUI编程的核心概念,它允许开发者自定义组件的外观和行为,特别是在创建复杂的可视化元素,如图表、图形等时显得尤为重要。`ChartTest.java`的代码示例可能为我们揭示了...

    4-8(Paint画笔).7z

    在本压缩包“4-8(Paint画笔).7z”中,主要涉及的是与计算机图形学和编程相关的知识点,特别是关于使用Paint类进行图形绘制的技巧。在Android开发或者Java GUI编程中,Paint类是核心的绘图工具,用于定义颜色、线条...

    HTML Paint Brush v1.8.1

    "chinazzz.txt" 可能是一份关于软件的说明文档或者许可协议,可能包含了软件的使用指南、版本信息以及版权条款等内容。而 "projects" 文件可能是一个文件夹,里面保存了用户的项目文件,比如已设计的网页颜色方案或...

    textual-paint.zip

    《文本绘画:深入理解“textual-paint.zip”》 在信息技术领域,"textual-paint.zip" 这个...通过解压并研究这个程序,我们可以了解到如何创建一个功能丰富的文本编辑和绘图工具,并从中获取关于软件开发的宝贵经验。

    Android应用源码之(Paint画笔).zip

    本资料包包含了一个关于Android应用中Paint使用的研究案例,适用于学习和参考。 在Android中,Paint对象用于设置绘图的样式和属性,例如颜色、线条宽度、填充模式、抗锯齿效果等。以下是一些重要的知识点: 1. **...

    android paint-pad

    在源代码中,我们可以找到关于`Canvas`和`Paint`类的使用,这两个类在Android中是进行图形绘制的基础。`Canvas`是画布,我们在其上绘制图形;`Paint`则是画笔,设置线条颜色、宽度、样式等属性。此外,可能还会涉及...

    Paint画笔的基本使用及自定义进度条

    通过阅读源码,你可以学习到更多关于自定义View和Paint的高级用法,例如渐变色、阴影效果、复杂路径等。 总结来说,Paint类是Android图形绘制的核心,理解其基本属性和用法对于提升Android界面设计能力至关重要。而...

Global site tag (gtag.js) - Google Analytics