我的问题真的很简单:我有这个小程序,它只是不显示我要制作的红色框:
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:是的,测试也无法打印
您正在将Awing组件(javax.swing.JComponent
)添加到AWT帧(java.awt.Frame
)。没有人会调用paintComponents()
方法,这就是为什么您没有任何输出或结果的原因。而是从javax.swing.JFrame
扩展,因此您具有一个带有Swing组件的Swing框架。