我正在用mouseListener和mouseMotionListener制作一个gui程序。我有以下线类如何在类和方法之间传递Graphics对象来绘制线
public class Line {
private int x1, x2, y1, y2;
private Color color;
public Line(int x1, int x2, int y1, int y2, Color color)
{
this.x1 = x1;
this.x2 = x2;
this.y1 = y1;
this.y2 = y2;
this.color = color;
}
public void draw(Graphics page)
{
page.drawLine(x1, y1, x2, y2);
page.setColor(color);
}
}
这是我在那里的mouseReleased我获得所需的线的最后一站。
public void mouseReleased (MouseEvent event)
{ // ending points
moving = false;
Point p2 = event.getPoint();
x2 = p2.x;
y2 = p2.y;
line = new Line(x1,x2,y1,y2,currentColor);
lineList.add(line);
canvas.paintComponent(??????????);
这是应该在数组列表“lineList”中绘制所有这些行的画布方法。画布
private class CanvasPanel extends JPanel
{
//this method draws all shapes specified by a user
public void paintComponent(Graphics page)
{
super.paintComponent(page);
setBackground(Color.WHITE);
for(int i = 0; i <lineList.size()-1;i++)
{
line.draw(page);
}
但是我不知道如何通过图形对象到画布类,以实际绘制我在JPanel的线路。假设我有所有其他信息正确(初始线条点,JPanel设置正确,按钮设置),我如何通过这些实际使它画线到画布。谢谢!
嗯,这取决于如果你已经有了Canvas类里面的图形对象。你的Graphics对象在哪里? – PsyCode