首页 > Java > java教程 > 正文

在Java中重绘

PHPz
发布: 2024-08-30 15:38:22
原创
306 人浏览过

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中文网其他相关文章!

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板