有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

swing Java 2D图形绘制矩形

因此,我对Java编程和一般编程都很陌生,请原谅我缺乏知识。我试图在屏幕上画一个简单的矩形,带有一些给定的坐标

这是我在抽屉类中的代码:

public class Drawer extends JPanel {

public static void drawPixel(Graphics g, int x, int y) {
    g.fillRect(x, y, 5, 5);
}

}

下面是我试图在主类中使用的代码:

Drawer drawer = new Drawer();
Drawer.drawPixel(Graphics g, i9, i10);

所以我真的不明白第一个论点是什么。它给了我一个错误,说它无法解析“符号g”。i9和i10是我希望它绘制矩形的坐标

提前感谢您的帮助。:)


共 (3) 个答案

  1. # 1 楼答案

    Drawer.drawPixel(Graphics g, i9, i10);可能是您问题的根源

    您正在(作为第一个参数)沿着Graphics g的行传递某些内容。考虑仅通过^ ^ {CD3}},而不需要^ {CD4}}位来解决您的问题。

    Graphics g对象指的是图形上下文-这是有效地将内容绘制到屏幕上的内容。通过调用它的方法,你可以在用户可以看到的地方画东西

    JPanel为例,可以重写它的paintComponent()方法。你会注意到这个方法接受了一个图形对象,然后你可以用它来在面板上画东西

  2. # 2 楼答案

    你不能画那样的东西。您应该使用paintComponent()方法来绘制

    选中此项:

    public class RectDrawer extends JPanel {
        private int x;
        private int y;
        public RectDrawer(int x, int y){
            this.x = x;
            this.y = y;
        }
        public void paintComponent(Graphics g) {
            g.fillRect(x, y, 5, 5);
        }
    }
    
  3. # 3 楼答案

    你的一些代码不像Graphics g那样正确。我不打算讨论它,因为其他人有,但我建议你看一些教程。如果您对java有新的了解,请查看:

    video

    您应该看看这个视频系列,它教您对java语法和基础知识有一个坚实的理解。然后,您可以开始查看以下教程:

    video

    这让你对用Java制作复杂的游戏有了一个很好的理解。我甚至推荐中级和高级Java程序员来检查它。当我开始学习的时候,我看了其他的教程,他们主要是中途停下来,犯了严重的错误或者类似的事情。这段视频用一种更简单的方式教它