您的代码和建议的问题:
>再次,您需要更改组件的preferredSize(这里是Graph JPanel),而不是大小
>不要设置JFrame的边界。
>在添加组件之后并在调用setVisible(true)之前,在JFrame上调用pack()
>您的foreach循环将不起作用,因为您的ArrayList的大小为0(测试它看到这是正确的)。而是使用从0到10的for循环。
>您不应该在paintComponent(…)方法中使用程序逻辑,而只能绘制代码。所以我将使ArrayList成为一个类变量,并将其填充到类的构造函数内。
例如:
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.RenderingHints;
import java.awt.Stroke;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import javax.swing.*;
@SuppressWarnings("serial")
public class DrawGraph extends JPanel {
private static final int MAX_SCORE