`

关于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

    这是我写得ANdroid开发之图形图像的相关Demo,希望可以帮助到您 !

    PaintDemo5

    一个关于Paint类的测试demo,用于加强自己的学习和记忆

    PaintDemo2

    一个关于Paint类的测试demo,用于加强自己的学习和记忆

    PaintDemo4

    一个关于Paint类的测试demo,用于加强自己的学习和记忆

    PaintDemo3

    一个关于Paint类的测试demo,用于加强自己的学习和记忆

    PaintDemo..

    一个关于Paint类的测试demo,用于加强自己的学习和记忆

    houdini-paint-dot-grid:使用CSS Paint API绘制点网格背景

    关于学习模式。 查看。 用法 使用此工作集的最简单方法是直接从添加它: CSS . paintWorklet . addModule ( 'https://unpkg.com/houdini-paint-dot-grid/dist/dot-grid-worklet.js' ) ; 查阅的指南,了解如何...

    Android绘图之Paint的使用方法详解

    主要给大家介绍了关于Android绘图之Paint使用的相关资料,文中通过示例代码介绍的非常详细,并给大家介绍了DrawText 基线确定的方法,需要的朋友可以参考借鉴,下面随着小编来一些学习学习吧。

    paint.rar 是一个Java的程序

    是一个关于画图的程序,应该可以用。还有报告的

    paint-app:使用React的简单绘画应用

    有关更多信息,请参见关于的部分。npm run build 构建生产到应用程序build文件夹。 它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署...

    tinyos-programming.rar_paint6qh_tinyos

    有关于tinyos示例程序和相关文档说明

    sai_tw:Paint tool SAI 中文语系档

    Paint tool SAI 中文语系档 这是绘图软体[PaintTool SAI] 的中文语系档,以及其他相关中文化档案对应版本为1.2.0 使用方法 把language.conf 替换掉你安装SAI 的目录底下的同名档案 关于toolink 与toolnrm 两个资料...

    paint

    有关更多信息,请参见关于的部分。 yarn build 构建生产到应用程序build文件夹。它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。您的应用已准备好进行部署! ...

    Android利用Paint自定义View实现进度条控件方法示例

    主要给大家介绍了关于Android利用Paint自定义View实现进度条控件的相关资料,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

    GAN最新学习文档

    关于生成对抗网络的最近文档,原版文档,不是扫描出来的。Generative Deep Learning Teaching Machines to Paint, Write, Compose, and Play

    KingJA_CanvasDemo

    Android 关于Canvas和Paint的API Demo.

    Undo-able-Paint-Application:具有撤消功能的示例绘画应用程序

    可撤销的油漆应用该项目是用于在简单的 JavaScript 绘制应用程序中实现撤消功能的示例。... ./jsdoc/jsdoc.cmd -r "./Undo-able-Paint-Application/src/" -d "./Undo-able-Paint-Application/docs

    ps照片技术

    ps技术是关于图片修改的技术,它介绍了各种图像的修改和美化

    photoshop之redifeld滤镜

    关于安装: 安装路径默认是您的 PhotoShop 插件目录,在 PhotoShop CS2 里面默认就是 C:\Program Files\ADOBE\Adobe Photoshop CS2\Plug-Ins,您无需为此(套)插件手动建立子目录,安装程序将智能识别并新建;而...

    screenshot-paint:截图您的颜料

    有关更多信息,请参见关于的部分。 yarn build 构建生产到应用程序build文件夹。 它在生产模式下正确捆绑了React,并优化了构建以获得最佳性能。 生成被最小化,并且文件名包括哈希值。 您的应用已准备好进行部署...

Global site tag (gtag.js) - Google Analytics