作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在阅读《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 新手,所以我想完全理解。
提前致谢!
最佳答案
您需要实例化一个 DrawPanel
并将其添加到 DrawTest
中的 frame
中。首先包含 DrawPanel
的构造函数,然后在 go()
方法中添加以下几行:
DrawPanel panel = new DrawPanel();
frame.add(panel);
关于java - 尝试用 JPanel 绘制一个简单的矩形,但没有显示任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31492049/
我是一名优秀的程序员,十分优秀!