1

所以我对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 是我希望它绘制矩形的坐标。

提前感谢您的帮助。:)

4

3 回答 3

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);
    }
}
于 2013-08-30T17:15:14.837 回答
1

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

您正在传递(作为第一个参数)类似于Graphics g. 考虑只通过g自己而没有Graphics位 - 这应该可以解决您的问题。

对象指的Graphics g是图形上下文——这就是有效地将东西绘制到屏幕上的原因。通过在其上调用方法,您可以从字面上绘制用户可以看到的东西。

JPanel为例,您可以重写它的paintComponent()方法。您会注意到此方法接受一个 Graphics 对象 - 然后您可以使用它在面板中绘制内容。

于 2013-08-30T17:05:18.177 回答
0

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

视频

您应该查看该视频系列,它教您对 Java 语法和基础知识的深入理解。然后,您可以开始查看这样的教程:

视频

那本书教你对用 Java 制作复杂游戏有非常深刻的理解。我什至建议中级和高级 Java 程序员检查一下。当我开始时,我查看了其他教程,它们主要在中途停止,有严重的错误或类似的东西。这个视频教它一个更简单的方法。

于 2015-06-23T20:55:17.740 回答