Componente de pintura Java

Sarwan Soomro 15 febrero 2024
Componente de pintura Java

Primero, veremos cómo funciona el método paintComponent() de Java. ¿Cuándo invoca y cuál es la estructura de sus subsistemas y clases?

Finalmente, le mostraremos cómo usar este método para dibujar gráficos en la pantalla. Sigue leyendo para saber más.

el método PaintComponent() en Java

Considere una ubicación donde pueda guardar todo su código de pintura y gráficos. Considera que está bloqueado por defecto y solo te dejará entrar cuando lo solicites.

¿Qué indica? Cuando llega el momento de pintar, se inicia este método.

La pintura, por otro lado, comienza más arriba en la jerarquía de clases. Analiza su jerarquía de clases: java.awt.Component.

El subsistema de pintura llamará a este método siempre que sea necesario renderizar su componente.

¿Cómo se invoca Java paintComponent()? El AWT de Java admite un mecanismo de devolución de llamada.

Vale la pena señalar que el mecanismo de devolución de llamada de AWT es el mismo para los componentes livianos y pesados. Estos componentes se utilizan para pintar, independientemente de cómo se invoque o active una solicitud de pintura en particular.

Un programa debe colocar el código de renderizado dentro de un método anulado en particular. Y el mismo conjunto de herramientas llamará a este método cuando sea el momento de pintar.

Nota
El método que debe anularse es java.awt.Component.

Sintaxis:

import java.awt.*;
import javax.swing.*;
public void paintComponent(Graphics g) {
  // your code goes here
}

Además, javax.swing.JComponent amplía esta clase dividiendo el método pintar en tres métodos distintos.

  1. Componente de pintura vacío protegido (Gráficos g)
  2. borde de pintura vacío protegido (Gráficos g)
  3. Pintura vacía protegida Niños(Gráficos g)

Creemos que has entendido los conceptos básicos de este método hasta ahora. Ahora, analicemos otro método que solemos usar con el paintComponent().

Además, ahora no es el momento de entregarlo al sistema discutido anteriormente. Sin embargo, podemos pedirle al sistema que refresque la pantalla usando el método repintar().

Nota
La llamada a repaint() conduce a la llamada a paintComponent().

Mejores prácticas para usar Paint:

  1. No coloque código de representación en ningún lugar; podría invocarse fuera del alcance de la devolución de llamada de pintura. Dicho código puede invocarse cuando no es apropiado para pintar.
  2. Antes de que el componente sea visible o tenga acceso a un objeto Graphics válido, no se recomienda que los programas llamen directamente a paint().

AWT solicita una operación de pintura de forma asíncrona. Consulte el siguiente bloque de código para tener una idea.

Código:

public void repaint() public void repaint(long xyz) public void repaint(int a, int b,
    int definewidth,
    int defineheight) public void repaint(long xyz, int a, int b, int definewidth, int defineheight)

Aquí hay un ejemplo completo de demostración de Java.

Código:

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
// main class
@SuppressWarnings("serial")
class PainComponentDemo extends JPanel {
  public PainComponentDemo() {
    // setting background
    setBackground(Color.CYAN);
  }

  @Override
  // override java paintComponent
  public void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.drawOval(0, 0, getWidth(), getHeight());
  }
  // driver function
  public static void main(String[] args) {
    // extend jfram
    JFrame custJF = new JFrame();
    custJF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    custJF.setSize(500, 499);
    custJF.add(new PainComponentDemo());
    custJF.setVisible(true);
  } // driver function ends
} // main class ends

Producción:

Componente de pintura Java

Sarwan Soomro avatar Sarwan Soomro avatar

Sarwan Soomro is a freelance software engineer and an expert technical writer who loves writing and coding. He has 5 years of web development and 3 years of professional writing experience, and an MSs in computer science. In addition, he has numerous professional qualifications in the cloud, database, desktop, and online technologies. And has developed multi-technology programming guides for beginners and published many tech articles.

LinkedIn

Artículo relacionado - Java Swing