试图用JPanel绘制一个简单的矩形,但没有任何东西出现

时间:2015-07-18 14:15:06

标签: java graphics jpanel awt paintcomponent

我目前正在阅读这本书" Head First Java"。这本书太棒了,我真的很喜欢阅读它。但我突然停了下来。 这本书正在通过使用swing库进行GUI编程,结果证明它比我想象的要容易。在本章的GUI部分之后,本书介绍了绘图图形,以及awt库和图形对象。这就是我被困的地方。以下是我的代码,它编译得很好,但似乎不想渲染矩形。

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

public class DrawTest
{
    JFrame frame;

    public static void main(String[] args)
    {
        DrawTest test = new DrawTest();
        test.go();
    }

    public void go()
    {
        frame = new JFrame();

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(800, 800);
        frame.setVisible(true);
        frame.setResizable(false);
    }
}

class DrawPanel extends JPanel
{
    public void paintComponent(Graphics g)
    {
        g.setColor(Color.green);
        g.drawRect(70, 70, 200, 200);
    }
}

我做错了什么?这很可能非常明显,但我没有看到。我非常感谢一个彻底的答案,我是Java的新手,所以我想完全理解。

提前致谢!

1 个答案:

答案 0 :(得分:2)

您需要实例化DrawPanel并将其添加到frame中的DrawTest。首先包含DrawPanel的构造函数,然后在go()方法中添加这些行:

DrawPanel panel = new DrawPanel();
frame.add(panel);