首頁 > Java > java教程 > 主體

在Java中重繪

PHPz
發布: 2024-08-30 15:38:22
原創
305 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板