热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javapaint,javapaint图片右上角加圆点

本文目录一览:1、java中paint()的具体用法是什么?

本文目录一览:


  • 1、java中paint()的具体用法是什么?


  • 2、java的paint()是哪个类中定义的方法?


  • 3、JAVA中paint()是自动执行的吗?


  • 4、JAVA中Paint与paintComponent方法的区别是什么


  • 5、java paint方法一执行就黑屏


  • 6、在JAVA applet中paint办法为什么会自动执行?

java中paint()的具体用法是什么?

这个方法需要注意的地方不多,也就是重写时,先调用 super.paint(g) 方法

paint方法不需要编写代码调用,只需要重写。

其他看jdk帮助中就行了。

public void paint(Graphics g) {

super.paint(g);// 调用父类的paint方法或调用下面的方法直接绘制组件

g.drawImage(image, 0, 0, null);

g.setFont(new Font("", Font.BOLD, 13));

g.setColor(Color.WHITE);

}

paint

public void paint(Graphics g)绘制容器。该方法将 paint 转发给任意一个此容器子组件的轻量级组件。如果重新实现此方法,那么应该调用 super.paint(g) 方法,从而可以正确地呈现轻量级组件。如果通过 g 中的当前剪切设置完全剪切某个子组件,则不会将 paint() 转发给这个子组件。

覆盖:

类 Component 中的 paint

参数:

g - 指定的 Graphics 窗口

另请参见:

Component.update(Graphics)

java的paint()是哪个类中定义的方法?

首次出现在java.awt.Component类中,原型是:

public void paint(Graphics g)。

JAVA中paint()是自动执行的吗?

是的paint()方法只会自动调用一次,而且 你用的时候要自己重写这个方法

调用过一次的 时候 可以在线程里用repaint() 再度调用

关于Graphics ; 楼主的观点大部分是对的,但是有点小问题

首先 你并没有 调用paint(g)方法,而是 系统调用的,或者是你自己repaint()

调用的

如果 你要调用paint()方法,你必须传进来一个 参数 Graphics

Graphics 这个对象的 表示的 是,你的绘制环境

比如 有2个 JFrame jf1,jf2,那么对应2个Graphics g1,g2

(g1=jf1.getGraphics(),g2=jf2.getGraphics())//获取 绘制环境

如果jf1 是显示的,jf2是隐藏的

那么 你自己调用 paint(g2)的时候 ,不会显示绘制的内容,因为

paint()实在jf2上绘制的,

“包含有paint()方法的class实例化一个对象后调用构造方法后就会自动产生Graphics”

Graphics 这个对象不是在 你自己写的 类中产生的

而是 在 JFrame等 一些 可以作为容器类里 已经实例化的

也就是说 他已经定好了 绘制环境,

所以 你写JFrame,什么的 需要实现paint()方法的 时候

你不需要指定一个Graphics 说明你的 绘制环境

PS(你也可试试 在 线程里调用 paint(),好像也可以,因为 毕竟也是一个方法

,我曾经 在 paint()方法 里调用过 repaint(),而不是在线程里调用repaint(),就达到了动画的效果

)

JAVA中Paint与paintComponent方法的区别是什么

Component.paint:绘制此组件。

应该绘制组件的内容时调用此方法;例如首次显示组件或者组件已损坏并需要修复时。Graphics 参数中的矩形框设置为需要绘制的区域。重写此方法的 Component 子类不需要调用 super.paint(g)。

出于性能的考虑,首次显示宽度或高度为 0 的 Component 时认为它不需要进行绘制,并且也不需要修复。

Container.paint:绘制容器。该方法将 paint 转发给任意一个此容器子组件的轻量级组件。如果重新实现此方法,那么应该调用 super.paint(g) 方法,从而可以正确地呈现轻量级组件。如果通过 g 中的当前剪切设置完全剪切某个子组件,则不会将 paint() 转发给这个子组件。

Container.paintComponents:绘制此容器中的每个组件。

根据JAVA的API文档说,PAINT是CONTAINER提供的方法,只要容器需要重画的时候就会调用,而paintComponent则是JComponent所提供的方法,它是paint委托的一种重画组件的方法。我的想法是paint只会负责重画容器类的界面例如:Frame Dialog Window之类的,而在这些容器之上的组件则由paint委托paintComponent负责重画。

java paint方法一执行就黑屏

解释原因: 为什么黑屏 ?

答: setVisible(true) 窗口可见. 这个时候已经自动调用了paint函数,setSize()改变了窗口的大小,. 又回自动调用paint函数, paint函数会默认清空之前的绘制. 所以全黑了

解决办法:

        public void paint(Graphics g) {

super.paint(g); // 添加上这行代码, 表示再原有基础上重绘.

g.drawLine(100, 50, 400, 400);

g.drawRect(100, 50, 300, 300);

g.drawOval(100, 50, 300, 300);

}

其他建议:

setSize(500, 500);

setLocation(300, 300);

setVisible(true); // 把可视化,移动到设置大小和位置的后面

在JAVA applet中paint办法为什么会自动执行?

Applet类中的四种基本方法用来控制其运行状态:init()、start()、stop()、destroy()在start()方法里,会调用paint方法。这是applet的运行机制。\x0d\x0a init()方法\x0d\x0a 这个方法主要是为Applet的正常运行做一些初始化工作。当一个Applet被系统调用时,系统首先调用的就是该方法。通常可以在该方法中完成从网页向Applet传递参数,添加用户界面的基本组件等操作。\x0d\x0a start()方法\x0d\x0a 系统在调用完init()方法之后,将自动调用start()方法。而且,每当用户离开包含该 Applet的主页后又再返回时,系统又会再执行一遍start()方法。这就意味着start()方法可以被多次执行,而不像init()方法。因此,可把只希望执行一遍的代码放在init()方法中。可以在start()方法中开始一个线程,如继续一个动画、声音等。\x0d\x0a stop()方法\x0d\x0a 这个方法在用户离开Applet所在页面时执行,因此,它也是可以被多次执行的。它使你可以在用户并不注意Applet的时候,停止一些耗用系统资源的工作以免影响系统的运行速度,且并不需要人为地去调用该方法。如果Applet中不包含动画、声音等程序,通常也不必实现该方法。\x0d\x0a destroy()方法\x0d\x0a 与对象的finalize()方法不同,Java在浏览器关闭的时候才调用该方法。 Applet是嵌在HTML文件中的,所以destroty()方法不关心何时Applet被关闭,它在浏览器关闭的时候自动执行。在destroy() 方法中一般可以要求收回占用的非内存独立资源。(如果在Applet仍在运行时浏览器被关闭,系统将先执行stop()方法,再执行destroy()方法。


推荐阅读
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
  • 重入锁(ReentrantLock)学习及实现原理
    本文介绍了重入锁(ReentrantLock)的学习及实现原理。在学习synchronized的基础上,重入锁提供了更多的灵活性和功能。文章详细介绍了重入锁的特性、使用方法和实现原理,并提供了类图和测试代码供读者参考。重入锁支持重入和公平与非公平两种实现方式,通过对比和分析,读者可以更好地理解和应用重入锁。 ... [详细]
  • Java 11相对于Java 8,OptaPlanner性能提升有多大?
    本文通过基准测试比较了Java 11和Java 8对OptaPlanner的性能提升。测试结果表明,在相同的硬件环境下,Java 11相对于Java 8在垃圾回收方面表现更好,从而提升了OptaPlanner的性能。 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
author-avatar
CJT--陳嘉婷
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有