java中repaint()的简单介绍

java中repaint()与update()有什么区别

Update()方法用于更新组件,AWT调用该方法以响应对repaint()的调用,在调用update()或paint()之前,组件的外观将不会发生改变。它更新组件的步骤为:通过充填组件的背景色来清除该组件,然后,设置图形上下文(其原点为该组件的左顶点)的颜色为该组件的前景色,最后,调用paint方法完整地重绘该组件。

在Java中,repaint()方法是一个用于重绘组件的关键函数。当你希望更新组件的外观时,可以调用这个方法。它有多种形式,以满足不同场景的需求。首先,最基础的形式是public void repaint(),它会立即尝试调用组件的paint方法,如果组件是轻量级的。如果组件较重,它会触发update方法的执行。

有两点不同:repaint有选择的调用update或者paintrepaint() = update或者paint,对于轻量级组件,repaint会调用paint;而对于重量级组件,会调用update。update一般的工作是清屏然后paint。至于为什么repaint度轻量级和重量级的处理有所不同,如果你一定希望知道再追问我。

java里repaint()是重绘component的方法;repaint()方法用于重绘组件,该方法有下面四种形式:1。public void repaint()2。public void repaint(long tm)//指定调用update方法之前等待的最大毫秒数tm 3。public void repaint(int x,int y,int width,int height)//重绘组件的指定矩形区域 4。

其实repaint()的内部原理是先调用update()方法再调用了paint()方法了。

java中,repaint()会自动调用paintComponent()吗?

1、repaint()方法会告知Swing尽快重绘该组件。重绘时会调用该组件的paint()方法,而paint()方法会继续依次调用paintComponent、paintBorder、paintChildren三个方法来完成绘制。

2、一般来说是不应该像你这样写的,应该是把要画的步骤写在组件的被覆写的paintComponent函数里,然后在你响应事件的函数里直接掉用该组件的repaint()函数即可。repaint函数是会去掉该组件的paintComponent()函数的。

3、解决Swing中repaint()不调用paintComponent()的核心方法是确保所有UI更新在事件分发线程(EDT)中进行,并遵循Swing的被动渲染机制。使用Swing Timer是推荐方案,它能定期触发EDT中的重绘请求,避免线程问题导致的渲染失效。

java中repaint()的简单介绍

repaint()方法不起作用

java里repaint()是重绘component的方法;component中己有的图形发生变化后不会立刻显示,须使用repaint方法。component简而言之,组件就是对象。C++ Builder中叫组件,Delphi中叫部件,而在Visual BASIC中叫控件。组件是对数据和方法的简单封装。C++ Builder中,一个组件就是一个从TComponent派生出来的特定对象。组件可以有自己的属性和方法。

public void repaint(int x,int y,int width,int height)\x0d\x0a//重绘组件的指定矩形区域\x0d\x0a4。

repaint这个是通知系统,我们需要刷新界面了,但仅仅是个通知,repaint会立即返回(无阻塞),paint会在合适的时候被系统调用,所以paint 和repaint不是一一对应的,有一个repaint并不意味着一定会触发一个paint,多个repaint可能会被合并到一个paint调用。

因为Graphics对象一般都是在绘制过程中用到,他会作为paint方法的参数传递给你,绘制完之后很可能被丢弃,你保留着他的引用是没用的,当一次绘制完成后,你再用那个对象绘制是不会起作用的。正确的做法是,在mouseMoved方法中判断到需要重新绘制时调用repaint(),成员变量g1可以去掉。

java中的repaint()何append是什么意思?

repaint()的确是重绘,调用这个方法后,程序会以尽可能快的速度重绘界面。append()不是显示的意思。以TextArea为例,append()的功能是在文本框的文本最后附加上指定的内容。

repaint方法不总是马上执行,Java虽然会尽可能快的执行repaint,当Applet运行在较慢的平台上或计算机较忙时,应该考虑使用第2或4种repaint方法,指定在多长时间内必须执行repaint,否则就放弃。

java里repaint()是重绘component的方法;component中己有的图形发生变化后不会立刻显示,须使用repaint方法。component简而言之,组件就是对象。C++ Builder中叫组件,Delphi中叫部件,而在Visual BASIC中叫控件。组件是对数据和方法的简单封装。C++ Builder中,一个组件就是一个从TComponent派生出来的特定对象。

另外就是repaint会处理一些重量级组件的绘制,如Frame。但是paint只是重绘轻量级组件。至于你的程序中用repaint会防止绘制过程中的冲突;而如果你直接调用paint,立即绘制也许会造成你和awt线程同时绘制这个组件,造成冲突。你需要理解Java的GUI如何工作的。

对于标准组件,比如按纽等,有个awt线程负责控制,不用我们来处理,这就是你说的系统自动重画.而对于自己画的东西,比如画布(canvas)、自定义的图象等,则需要自己写程序去控制(repaint)。而自定义图象的绘画就在paint方法中 标准组件一般是用3d画图的。

repaint(int x,int y,int width,int height)//重绘组件的指定矩形区域 4。

repaint方法

repaint方法在Java中是一个用于重绘组件的关键函数。以下是关于repaint方法的详细解基础形式:public void repaint。这是最简单的形式,它会尝试立即调用组件的paint方法,或者触发update方法的执行。带延迟的形式:public void repaint。

java里repaint()是重绘component的方法;component中己有的图形发生变化后不会立刻显示,须使用repaint方法。component简而言之,组件就是对象。C++ Builder中叫组件,Delphi中叫部件,而在Visual BASIC中叫控件。组件是对数据和方法的简单封装。C++ Builder中,一个组件就是一个从TComponent派生出来的特定对象。

repaint方法不总是马上执行,Java虽然会尽可能快的执行repaint,当Applet运行在较慢的平台上或计算机较忙时,应该考虑使用第2或4种repaint方法,指定在多长时间内必须执行repaint,否则就放弃。

【答案】:B 在构件类的方法中,paint()方法是绘制构件,setSize()方法是设置组件大小,getSize()方法是获得组件大小,repaint()方法是重新绘制构件。

你可能想看:
« 上一篇
下一篇 »

相关推荐

java中什么是冒泡,冒泡算法

2026年09月06日

27阅读

java中冒号,java双冒号

2026年09月06日

26阅读

java中的->,java中的是什么意思

2026年09月06日

24阅读

java中的super用法,Java中super的说明

2026年09月06日

28阅读

java中反射的应用,java中反射的应用场景

2026年09月06日

26阅读

java中开关的定义,Java关键字有哪些

2026年09月06日

26阅读