Java 中未调用 paintComponents 方法

paintComponents method not being called in Java

我看了一个教程并尝试做同样的事情,我写了完全相同的代码但它什么也没显示。我认为这是因为没有调用 paintComponent 方法,我也尝试通过 paintComponent 打印一些东西来控制台。

这是我的代码:

public class Line extends JPanel{

    @Override
    public void paintComponents(Graphics g){
        super.paintComponent(g);
        g.setColor(Color.red);
        g.drawLine(100, 10, 30, 40);

    }
    public static void main(String[] args) {
        Line l =new Line();

        JFrame myFrame = new JFrame("Line");
        myFrame.setSize(600, 400);        
        myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        myFrame.add(l);
        myFrame.setVisible(true);
    }
}

谢谢!

您要覆盖的是 paintComponent,而不是带有 spaintComponents

paintComponents 绘制当前组件的子组件(它有点告诉子组件在 Graphics 对象上绘制自己)。

paintComponent 绘制组件本身,这是您要重写以对组件进行自定义绘制的方法。