Java Swing---运行程序时不显示任何内容

Java Swing---运行程序时不显示任何内容,java,swing,Java,Swing,我是Java Swing的新手。我正在画一些形状 但是当我运行以下代码时,我根本看不到图形。 我不明白为什么,有人能帮我吗?非常感谢 import java.awt.*; import java.awt.geom.*; import javax.swing.*; public class Draw { public static void main(String[] args) { EventQueue.invokeLater(new Runnable()

我是Java Swing的新手。我正在画一些形状

但是当我运行以下代码时,我根本看不到图形。 我不明白为什么,有人能帮我吗?非常感谢

import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;

public class Draw 
{
    public static void main(String[] args)
    {
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                DrawFrame frame = new DrawFrame();
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setVisible(true);
            }
        });
    }
}

class DrawFrame extends JFrame
{
    public static final int DEFAULT_WIDTH = 400;
    public static final int DEFAULT_HEIGHT = 400;

    public DrawFrame()
    {
        setTitle("DrawTest");
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

        DrawComponent component = new DrawComponent();
        add(component);
    }
}

class DrawComponent extends JComponent
{
    public void painComponent(Graphics g)
    {
        Graphics2D g2= (Graphics2D) g;
        Rectangle2D rec = new Rectangle2D.Double(100, 100, 200, 150);
        g2.draw(rec);

        Ellipse2D ellipse = new Ellipse2D.Double();
        ellipse.setFrame(rec);
        g2.draw(ellipse);
    }
}

在提供的代码中,
paintComponent
方法的名称有错误:

public void painComponent(Graphics g)
所以它实际上并没有覆盖超类中的方法。您可以添加@Override注释,以便在方法实际上未重写任何内容时编译器将给出错误,例如:

@Override
public void painComponent(Graphics g)

painComponent
是打字错误,还是这是您的实际代码?应该是
paintComponent
@Ash我太粗心了!知道了!非常感谢!只是作为回答补充的