我正在用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