java中的repaint方法,java的paintcomponent
java中,repaint()会自动调用paintComponent()吗?
repaint()方法会告知Swing尽快重绘该组件。重绘时会调用该组件的paint()方法,而paint()方法会继续依次调用paintComponent、paintBorder、paintChildren三个方法来完成绘制。
解决Swing中repaint()不调用paintComponent()的核心方法是确保所有UI更新在事件分发线程(EDT)中进行,并遵循Swing的被动渲染机制。使用Swing Timer是推荐方案,它能定期触发EDT中的重绘请求,避免线程问题导致的渲染失效。
一般来说是不应该像你这样写的,应该是把要画的步骤写在组件的被覆写的paintComponent函数里,然后在你响应事件的函数里直接掉用该组件的repaint()函数即可。repaint函数是会去掉该组件的paintComponent()函数的。
在PaintingPanel的paintComponent中直接绘制测试线(如g.drawLine(0,0,100,100))可正常显示,说明问题与paintComponent调用机制无关,进一步确认是数据存储方式导致。最佳实践总结理解引用机制:Java中对象赋值和参数传递均为引用传递,共享可变对象需谨慎。
java里repaint();是干什么用的?
1、。public void repaint(int x,int y,int width,int height)//重绘组件的指定矩形区域 4。
2、java里repaint()是重绘component的方法;component中己有的图形发生变化后不会立刻显示,须使用repaint方法。component简而言之,组件就是对象。C++ Builder中叫组件,Delphi中叫部件,而在Visual BASIC中叫控件。组件是对数据和方法的简单封装。C++ Builder中,一个组件就是一个从TComponent派生出来的特定对象。
3、在Java中,repaint()方法是一个用于重绘组件的关键函数。当你希望更新组件的外观时,可以调用这个方法。它有多种形式,以满足不同场景的需求。首先,最基础的形式是public void repaint(),它会立即尝试调用组件的paint方法,如果组件是轻量级的。如果组件较重,它会触发update方法的执行。
4、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。
5、另外就是repaint会处理一些重量级组件的绘制,如Frame。但是paint只是重绘轻量级组件。至于你的程序中用repaint会防止绘制过程中的冲突;而如果你直接调用paint,立即绘制也许会造成你和awt线程同时绘制这个组件,造成冲突。你需要理解Java的GUI如何工作的。
6、对于标准组件,比如按纽等,有个awt线程负责控制,不用我们来处理,这就是你说的系统自动重画.而对于自己画的东西,比如画布(canvas)、自定义的图象等,则需要自己写程序去控制(repaint)。而自定义图象的绘画就在paint方法中 标准组件一般是用3d画图的。
repaint方法
1、repaint方法在Java中是一个用于重绘组件的关键函数。以下是关于repaint方法的详细解基础形式:public void repaint。这是最简单的形式,它会尝试立即调用组件的paint方法,或者触发update方法的执行。带延迟的形式:public void repaint。
2、。public void repaint()2。public void repaint(long tm)//指定调用update方法之前等待的最大毫秒数tm 3。public void repaint(int x,int y,int width,int height)//重绘组件的指定矩形区域 4。
3、java里repaint()是重绘component的方法;component中己有的图形发生变化后不会立刻显示,须使用repaint方法。component简而言之,组件就是对象。C++ Builder中叫组件,Delphi中叫部件,而在Visual BASIC中叫控件。组件是对数据和方法的简单封装。
4、【答案】:B 在构件类的方法中,paint()方法是绘制构件,setSize()方法是设置组件大小,getSize()方法是获得组件大小,repaint()方法是重新绘制构件。
5、不是。paint()方法系统会自己调用。repaint()方法一般是你自己写代码调用的。调用了它之后,repaint()方法会默认调用update(Graphics g)方法。
Java中的repaint和paint
有两点不同:repaint有选择的调用update或者paintrepaint() = update或者paint,对于轻量级组件,repaint会调用paint;而对于重量级组件,会调用update。update一般的工作是清屏然后paint。至于为什么repaint度轻量级和重量级的处理有所不同,如果你一定希望知道再追问我。
Graphics是 铅笔一样 public void paint(Graphics g){ g.setColor(Color.red); //红色铅笔 } repaint(); //刷新 paint()就是像是初始化repaint()就是在每次变化之后再执行执行一次http://zhidao.baidu.com/question/25508012html这个是以前回答的一个问题。内容应该是你要的答案。
paint里一般是在初始化时所要得到的内容。repaint则是针对特定的场景完成你需要的要求。
而对于自己画的东西,比如画布(canvas)、自定义的图象等,则需要自己写程序去控制(repaint)。而自定义图象的绘画就在paint方法中 标准组件一般是用3d画图的。
repaint()方法会告知Swing尽快重绘该组件。重绘时会调用该组件的paint()方法,而paint()方法会继续依次调用paintComponent、paintBorder、paintChildren三个方法来完成绘制。
调用paint的一般是repaint()或当显示器刷新的时候调用的类似repaint()的类。 当对于桌面执行了某类操作,改变了桌面上的图象时,jvm收到界面被调整的信息,此时会调用visible是ture的图形组件的repaint()方法对界面重绘。
java中repaint()方法到底应该怎么用?
1、在Java中,repaint()方法是一个用于重绘组件的关键函数。当你希望更新组件的外观时,可以调用这个方法。它有多种形式,以满足不同场景的需求。首先,最基础的形式是public void repaint(),它会立即尝试调用组件的paint方法,如果组件是轻量级的。如果组件较重,它会触发update方法的执行。
2、java里repaint()是重绘component的方法;component中己有的图形发生变化后不会立刻显示,须使用repaint方法。component简而言之,组件就是对象。C++ Builder中叫组件,Delphi中叫部件,而在Visual BASIC中叫控件。组件是对数据和方法的简单封装。C++ Builder中,一个组件就是一个从TComponent派生出来的特定对象。
3、在非paint方法中,显示的调用任何paint方法,就相当于你自己来画;而repaint就是发出请求交给awt来画。显然我们应该确定究竟谁来画,因为两者交织的画可能带来冲突。比如awt正在绘制的过程中,你的程序乱入,在他绘制一半的图片上涂涂抹抹……。
