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中文網其他相關文章!