所以我对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是我想要它绘制矩形的坐标。
提前感谢您的帮助。 :)
答案 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)