目次
Java での再描画はどのように機能しますか?
Java で repaint メソッドを実装する例
例 #2
結論

Javaで再描画する

Aug 30, 2024 pm 03:38 PM
java

Java の repaint メソッドは java.applet.Applet クラスで利用できます。これは、paint メソッドの呼び出しとともに update メソッドを呼び出す必要がある場合に常に使用される最終メソッドです。 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 クラスの一部であり、オーバーライドできません。したがって、repaint メソッドは、アプレットまたはそのサブクラスを拡張したクラスから直接呼び出すことができます。

Java での再描画はどのように機能しますか?

repaint メソッドは Applet クラスで使用できる最終メソッドであるため、オーバーライドできません。 repaint メソッドを使用する場合は、アプレット クラスのサブクラスから直接呼び出す必要があります。 repaint メソッドは、アプレットのペイント サイクルの更新を処理します。コンポーネント自体を再描画したい場合は、必ず repaint メソッドを呼び出す必要があります。コンポーネントの外観を変更したが、サイズは何も変更しなかった場合は、repaint メソッドを呼び出して、グラフィカル ユーザー インターフェイス上のコンポーネントの新しい外観を更新できます。 repaintメソッドはアプレットクラスの非同期メソッドです。 repaint メソッドの呼び出しが行われると、少し遅れてコンポーネントの消去と再描画のリクエストが実行されます。

コンポーネントから 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で再描画する

マウスクリックイベントが実行されると、次の図形が黒色の境界線で表示されます。これは、update メソッドを呼び出してからペイントする repaint メソッドを通じて行われることに注意してください。これにより、クリック イベントが実行された直後に表示される形状を確認できるようになります。

Javaで再描画する

例 #2

repaint メソッドの使用をより明確にするために、別の例を次に示します。

コード:

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 の値を継続的にインクリメントしており、変数の更新された値がユーザー インターフェイスに確実に表示されるようにしたいと考えています。したがって、paint メソッドの前に update メソッドを確実に呼び出す repaint メソッドを使用しています。上記のプログラムの出力。テストのこのウィンドウ値では、変数は常に増加しており、更新された値が GUI に表示されます。

結論

上記の例は、再描画メソッドとその機能を明確に理解するのに役立ちます。アプレットの更新とペイント サイクルを呼び出す場合は、repaint メソッドを呼び出す必要があります。呼び出した repaint メソッドは、コンポーネントの外観を即座に更新します。

以上がJavaで再描画するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Javaの平方根 Javaの平方根 Aug 30, 2024 pm 04:26 PM

Javaの平方根

Javaの完全数 Javaの完全数 Aug 30, 2024 pm 04:28 PM

Javaの完全数

Java の乱数ジェネレーター Java の乱数ジェネレーター Aug 30, 2024 pm 04:27 PM

Java の乱数ジェネレーター

ジャワのウェカ ジャワのウェカ Aug 30, 2024 pm 04:28 PM

ジャワのウェカ

Javaのアームストロング数 Javaのアームストロング数 Aug 30, 2024 pm 04:26 PM

Javaのアームストロング数

Javaのスミス番号 Javaのスミス番号 Aug 30, 2024 pm 04:28 PM

Javaのスミス番号

Java Springのインタビューの質問 Java Springのインタビューの質問 Aug 30, 2024 pm 04:29 PM

Java Springのインタビューの質問

Java 8 Stream Foreachから休憩または戻ってきますか? Java 8 Stream Foreachから休憩または戻ってきますか? Feb 07, 2025 pm 12:09 PM

Java 8 Stream Foreachから休憩または戻ってきますか?

See all articles