代码之家  ›  专栏  ›  技术社区  ›  Aslambek Hudajev

试图用JPanel绘制一个简单的矩形,但没有显示任何内容

  •  1
  • Aslambek Hudajev  · 技术社区  · 11 年前

    我目前正在读《头先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 回复  |  直到 11 年前
        1
  •  2
  •   deezy    11 年前

    您需要实例化 DrawPanel 并将其添加到 frame 在里面 DrawTest 。首先包括 绘图面板 ,然后在 go() 方法:

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