首页  >  文章  >  Java  >  在Java中重绘

在Java中重绘

PHPz
PHPz原创
2024-08-30 15:38:22294浏览

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 方法。

重绘在 Java 中是如何工作的?

repaint 方法是 Applet 类中可用的最终方法,这就是它不能被重写的原因。每当要使用 repaint 方法时,都应该从 Applet 类的子类中直接调用它。 repaint 方法负责处理小程序绘制周期的更新。每当我们想要一个组件重新绘制自身时,我们需要调用 repaint 方法。如果我们更改了组件的外观,但没有更改其大小,则可以调用 repaint 方法来更新图形用户界面上组件的新外观。 repaint方法是applet类的异步方法。当调用 repaint 方法时,它会在短暂的延迟后执行擦除和重绘组件的请求。

每当从组件调用重绘方法时,都会向图形用户界面发送一个请求,该请求与图形用户界面通信以在将来的某个时间执行某些操作。 repaint方法背后的整个想法是避免直接调用paint()方法。

Java 中实现 repaint 方法的示例

现在我们将看到一些展示 repaint 方法使用的 java 示例:

示例#1

下面是一个示例,展示了 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
}
}

输出:

在Java中重绘

执行鼠标单击事件后,将看到以下带有黑色边框的形状。请注意,这是通过 repaint 方法完成的,该方法调用 update 然后 Paints 方法,因此我们能够在执行单击事件后立即看到可见的形状。

在Java中重绘

示例#2

为了更清楚地了解重绘方法的使用,这里是另一个示例:

代码:

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();
}
}

输出:

在Java中重绘

在上面的示例中,我们有一个小程序,并且在其中声明了一个名为 test 的变量。我们不断增加变量 test 的值,并且希望确保变量的更新值在用户界面上可见。因此,我们使用 repaint 方法来确保在 Paint 方法之前调用 update 方法。上述程序的输出。在测试的这个窗口值中,变量始终递增,更新后的值在 GUI 上可见。

结论

上面的例子让我们清楚地了解了repaint方法及其功能。当我们想要调用小程序的更新和绘制周期时,我们应该调用 repaint 方法。调用 repaint 方法会立即更新组件的外观。

以上是在Java中重绘的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
上一篇:replaceAll() in Java下一篇:copy() in Java