Java 2D图形 - 绘制矩形

时间:2013-08-30 17:01:47

标签: java swing jpanel graphics2d

所以我对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 个答案:

答案 0 :(得分:4)

你不能画那样的东西。您应该使用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);
    }
}

答案 1 :(得分:1)

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

你传递(作为第一个参数)Graphics g行。考虑在没有g位的情况下自行传递Graphics - 这应该可以解决您的问题。

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

JPanel为例,您可以覆盖其paintComponent()方法。你会注意到这个方法接受了一个Graphics对象 - 然后你可以用它在面板中绘制东西。

答案 2 :(得分:0)

你的一些代码不像Graphics g。我不打算过去,因为其他人有,但我建议你看看一些教程。如果你的java新手整体那么请查看:

video

你应该看看那个视频系列,它教会你对java语法和基础知识的深刻理解。然后你可以开始查看这样的教程:

video

那个人教你如何用Java来制作复杂的游戏。我建议甚至是中级和高级Java程序员来检查它。当我开始时,我看了其他教程,他们主要是中途停止,有可怕的错误或类似的事情。这段视频教会了一个更简单的方法。