【发布时间】:2014-05-17 06:56:24
【问题描述】:
我对 Java 图形非常陌生,所以请询问是否需要任何其他信息 :)
我正在尝试根据鼠标在屏幕上的点击位置绘制形状。因此,我需要将单击位置的 x 和 y 坐标传递给 paintComponent() 方法,以便它知道在哪里绘制形状。
public void mouseClicked(MouseEvent e) {
System.out.println("Adding Shape");
repaint();
}
class CanvasDrawArea extends JPanel{
//this should run when the program first starts
@Override
public void paintComponent(Graphics g){
super.paintComponent(g);
canvas.setBackground(CANVAS_COLOR);
}
//here is where the question is
public void paintComponent(Graphics g, int x, int y){
super.paintComponent(g);
g.fillRect(x, y, RECTANGLE_WIDTH, RECTANGLE_HEIGHT);
}
}
基本上,我试图通过调用repaint() / pack() 方法让一个在程序启动时正确运行的paintComponent 以及一个在我给它x 和y 坐标时将运行的paintComponent 重载。但是,我不确定应该如何传递 x 和 y 参数,因为无法在 repaint() 方法中传递它们。
【问题讨论】: