PaintComponent似乎没有得到呼叫或显示

问题描述 投票:0回答:1

我的问题真的很简单:我有这个小程序,它只是不显示我要制作的红色框:

Main

public class Main {
    public static void main(String[] args) {
        Affichage a = new Affichage();
        a.setVisible(true);
    }
}

Affichage:

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

public class Affichage extends Frame{
    public Affichage(){
        setTitle("Exo 1 : Galerie");
        setSize(1120,560);
        Graphique graph = new Graphique();
        this.add(graph);
    }
}

Graphique:

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

public class Graphique extends JComponent {
    @Override
    public void paintComponents(Graphics g) {
        super.paintComponents(g);
        Graphics pinceau = g.create();

        pinceau.setColor(Color.RED);
        pinceau.fillRect(100, 100, 200, 200);

        System.out.println("test");
    }
}

我打赌这很可笑,但我找不到它,请帮帮我。PS:是的,测试也无法打印

java jcomponent
1个回答
0
投票

您正在将Awing组件(javax.swing.JComponent)添加到AWT帧(java.awt.Frame)。没有人会调用paintComponents()方法,这就是为什么您没有任何输出或结果的原因。而是从javax.swing.JFrame扩展,因此您具有一个带有Swing组件的Swing框架。

© www.soinside.com 2019 - 2024. All rights reserved.