首頁  >  文章  >  Java  >  在Java中重繪

在Java中重繪

PHPz
PHPz原創
2024-08-30 15:38:22190瀏覽

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