gpt4 book ai didi

java - 在黑色 JFrame 上绘制线条

转载 作者:行者123 更新时间:2023-12-01 23:49:37 24 4
gpt4 key购买 nike

我正在尝试使用我过去六个月所学到的 Java 编程知识来重新创建经典的乒乓球游戏。但画线并不是其中之一,即使它看起来很基本。

public static void main(String[] args) {
Pong p = new Pong();
p.setVisible(true);
}
/**
* The Constructor
*/
public Pong() {
makeFrame();
draw(getGraphics());
}

/**
* Making the frame for the game
*/
public void makeFrame() {
// Frame stuff goes here
}

/**
* Drawing the in-games lines
*/
public void draw(Graphics g) {
super.paint(g);
g.setColor(Color.white);
g.drawLine(400, 0, 400, 550);
}

我似乎无法自行绘制线条。知道我做错了什么吗?我希望这条线位于屏幕中间。

编辑:想要感谢回答问题的人。非常感谢你们!我非常感谢您的答案和提供的链接! :)

最佳答案

在 Java Swing 中,您不需要自己调用“draw” - 相反,您创建一个 JFrame(或另一个顶级容器,例如 JApplet)并覆盖其“paint”方法 - 或组件的 Paint 方法直接或间接包含在根元素中。

您的 getGraphics() 将不会返回实际的图形上下文(这些上下文仅为根 swing 组件创建,或者在为离屏绘画构建位图缓冲区时创建)。所以什么也不会显示。看看official painting tutorial .

推荐的方法(以及上面教程中使用的方法)是通过重写组件层次结构中包含的 JPanel 的 PaintComponent() 方法来执行自定义绘制。

关于java - 在黑色 JFrame 上绘制线条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16496064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com