java中的repaint方法在java.applet中可用。Applet类是一个final方法,每当我们想要调用update方法以及调用paint方法时都会使用该方法;调用 update 方法会清除当前窗口,执行更新,然后调用 Paint 方法。
广告 该类别中的热门课程 JAVA 掌握 - 专业化 | 78 课程系列 | 15 次模拟测试语法:
package <packagename>; // class extending applet public class <classname> extends Applet{ public method <methodName>(<arguments>){ repaint(); // calling repaint method when required } }
上面的语法展示了如何在java中使用repaint方法。 repaint 方法是 java.applet.Applet 类的一部分,并且不能被覆盖。因此,可以从扩展 Applet 的类或其子类直接调用 repaint 方法。
repaint 方法是 Applet 类中可用的最终方法,这就是它不能被重写的原因。每当要使用 repaint 方法时,都应该从 Applet 类的子类中直接调用它。 repaint 方法负责处理小程序绘制周期的更新。每当我们想要一个组件重新绘制自身时,我们需要调用 repaint 方法。如果我们更改了组件的外观,但没有更改其大小,则可以调用 repaint 方法来更新图形用户界面上组件的新外观。 repaint方法是applet类的异步方法。当调用 repaint 方法时,它会在短暂的延迟后执行擦除和重绘组件的请求。
每当从组件调用重绘方法时,都会向图形用户界面发送一个请求,该请求与图形用户界面通信以在将来的某个时间执行某些操作。 repaint方法背后的整个想法是避免直接调用paint()方法。
现在我们将看到一些展示 repaint 方法使用的 java 示例:
下面是一个示例,展示了 java 中如何使用 repaint 方法:
代码:
package com.edubca.repaintdemo; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; import java.applet.Applet; // class extending applet component and implementing mouse event listener public class RepaintDemo extends Applet implements MouseListener { private Vector vector; public RepaintDemo() { vector = new Vector(); setBackground(Color.red); addMouseListener(this); } public void paint(Graphics graphics) { // paint method implementation super.paint(graphics); graphics.setColor(Color.black); Enumeration enumeration = vector.elements(); while(enumeration.hasMoreElements()) { Point p = (Point)(enumeration.nextElement()); graphics.drawRect(p.x-20, p.y-20, 40, 40); } } public void mousePressed(MouseEvent mouseevent) { vector.add(mouseevent.getPoint()); repaint(); // call repaint() method } public void mouseClicked(MouseEvent mouseevent) {} public void mouseEntered(MouseEvent mouseevent) {} public void mouseExited(MouseEvent mouseevent) {} public void mouseReleased(MouseEvent mouseevent) {} public static void main(String args[]) { JFrame frame = new JFrame(); // creating a jFrame object frame.getContentPane().add(new RepaintDemo()); // Adding Window frame.setTitle("Repaint Method Demo"); // set title of the window frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.setSize(375, 250); // set size of window frame.setVisible(true); // set window as visible } }
输出:
执行鼠标单击事件后,将看到以下带有黑色边框的形状。请注意,这是通过 repaint 方法完成的,该方法调用 update 然后 Paints 方法,因此我们能够在执行单击事件后立即看到可见的形状。
为了更清楚地了解重绘方法的使用,这里是另一个示例:
代码:
import java.awt.*; import java.awt.event.*; import java.util.*; import java.applet.Applet; import java.awt.Graphics; // class extending public class RepaintDemo extends Applet { int test=2; public void paint(Graphics graphics) { super.paint(graphics); setBackground(Color.cyan); // set backgroung color of window graphics.setColor(Color.black); // set color of Text appearing on window graphics.drawString("Value of Variable test = "+test, 80, 80); try { Thread.sleep(1000); } catch(InterruptedException ex){} // increasing value of variable by 1 and update its value of GUI test++; repaint(); } }
输出:
在上面的示例中,我们有一个小程序,并且在其中声明了一个名为 test 的变量。我们不断增加变量 test 的值,并且希望确保变量的更新值在用户界面上可见。因此,我们使用 repaint 方法来确保在 Paint 方法之前调用 update 方法。上述程序的输出。在测试的这个窗口值中,变量始终递增,更新后的值在 GUI 上可见。
上面的例子让我们清楚地了解了repaint方法及其功能。当我们想要调用小程序的更新和绘制周期时,我们应该调用 repaint 方法。调用 repaint 方法会立即更新组件的外观。
以上是在Java中重绘的详细内容。更多信息请关注PHP中文网其他相关文章!