gpt4 book ai didi

java - PaintComponent 似乎没有被调用或显示

转载 作者:行者123 更新时间:2023-12-02 08:56:24 27 4
gpt4 key购买 nike

我的问题非常简单:我有这个小程序,它只是没有显示我正在尝试制作的红框:

主要

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

附属机构:

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);
}
}

图形:

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");
}
}

我敢打赌这是 mock ,但我找不到它是什么,帮助我。PS:是的,测试也没有打印

最佳答案

实际上,不要扩展JFrame,因为这是不好的做法。就举个例子吧。要绘制,请扩展 JPanel 并覆盖 paintComponent

JFrame f = new JFrame();
f.add(new MyPanel());

class MyPanel extends JPanel {
// other stuff
public void paintComponent(Graphics g) {
super.paintComponent(g);
// painting stuff.
}
}

记住不要混合使用 SwingAWT 组件。

关于java - PaintComponent 似乎没有被调用或显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60459733/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com