>  기사  >  Java  >  Java로 다시 칠하기

Java로 다시 칠하기

PHPz
PHPz원래의
2024-08-30 15:38:22189검색

Java의 repaint 메소드는 java.applet에서 사용할 수 있습니다.Applet 클래스는 페인트 메소드 호출과 함께 업데이트 메소드를 호출하려고 할 때마다 사용되는 최종 메소드입니다. 업데이트 메소드 호출은 현재 창을 지우고 업데이트를 수행한 후 페인트 메소드를 호출합니다.

광고 이 카테고리에서 인기 있는 강좌 JAVA MASTERY - 전문 분야 | 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 메소드는 애플릿 클래스의 비동기 메소드입니다. 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로 다시 칠하기

마우스 클릭 이벤트가 수행된 후 검은색 테두리로 다음과 같은 도형이 표시됩니다. 업데이트 후 페인트 메소드를 호출하는 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 변수의 값을 지속적으로 증가시키고 있으며, 변수의 업데이트된 값이 사용자 인터페이스에 표시되도록 하려고 합니다. 따라서 우리는 페인트 메소드 전에 업데이트 메소드를 호출하도록 보장하는 repaint 메소드를 사용하고 있습니다. 위 프로그램의 출력입니다. 이 테스트의 창 값에서는 변수가 항상 증가하며 업데이트된 값이 GUI에 표시됩니다.

결론

위의 예는 repaint 방법과 그 기능에 대한 명확한 이해를 제공합니다. 애플릿의 업데이트 및 페인트 주기를 호출하려면 repaint 메소드를 호출해야 합니다. repaint 메서드 호출은 구성 요소의 모양과 모양을 즉시 업데이트합니다.

위 내용은 Java로 다시 칠하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:Java의 교체All()다음 기사:Java의 교체All()