laindComponents方法未在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绘制组件本身,这是您要覆盖组件进行自定义绘画的方法。

最新更新