Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách triển khai phương thức paintComponent() của JPanel trong Java

JPanel là container nhẹ và thành phần vô hình trong Java. Layout mặc định của JPanel là FlowLayout. Sau khi tạo JPanel, các component khác thêm vào bằng phương thức add() kế thừa từ Container.

paintComponent()

Phương thức này cần thiết để vẽ thứ gì đó trên JPanel ngoài việc vẽ màu nền. Phương thức này đã tồn tại trong lớp JPanel nên cần dùng từ khóa super để bổ sung và nhận tham số Graphics. Gọi super.paintComponent() (phương thức paintComponent() bình thường của JPanel chỉ xử lý nền) phải ở dòng đầu tiên.

Cú pháp

protected void paintComponent(Graphics g)

Ví dụ

import java.awt.*;
import javax.swing.*;

public class SmileyApp extends JPanel {
    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.setColor(Color.YELLOW);
        g.fillOval(10, 10, 200, 200);
        // draw Eyes
        g.setColor(Color.BLACK);
        g.fillOval(55, 65, 30, 30);
        g.fillOval(135, 65, 30, 30);
        // draw Mouth
        g.fillOval(50, 110, 120, 60);
        // adding smile
        g.setColor(Color.YELLOW);
        g.fillRect(50, 110, 120, 30);
        g.fillOval(50, 120, 120, 40);
    }

    public static void main(String[] args) {
        SmileyApp smiley = new SmileyApp();
        JFrame app = new JFrame("Smiley App");
        app.add(smiley, BorderLayout.CENTER);
        app.setSize(300, 300);
        app.setLocationRelativeTo(null);
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        app.setVisible(true);
    }
}

Kết quả

Cách triển khai phương thức paintComponent() của JPanel trong Java