2014-03-03 42 views
0

在這個例子中,我試圖創建一個骰子。要做到這一點,我想從我的updateVal方法傳遞1到6之間的隨機值到我的繪畫方法,但我不知道如何傳遞參數到繪畫方法。Java圖形:將參數傳遞給paint方法

目前我使用重繪方法,顯然你不能傳遞參數。

public void updateVal(int i){ 
    repaint(); 
} 

public void paint(Graphics g, int rollValue){ 
    super.paint(g); 

    int value = rollValue; 
    switch (value) { 
     case 1: g.fillOval(200, 200, 100, 100); 
       break; 
     case 2: g.fillOval(350, 50, 100, 100); 
       g.fillOval(50, 450, 100, 100); 
       break; 
     case 3: g.fillOval(350, 50, 100, 100); 
       g.fillOval(200, 250, 100, 100); 
       g.fillOval(50, 450, 100, 100); 
       break; 
     case 4: g.fillOval(350, 50, 100, 100); 
       g.fillOval(50, 350, 100, 100); 
       g.fillOval(50, 50, 100, 100); 
       g.fillOval(350, 350, 100, 100); 
       break; 
     case 5: g.fillOval(350, 50, 100, 100); 
       g.fillOval(50, 350, 100, 100); 
       g.fillOval(50, 50, 100, 100); 
       g.fillOval(350, 350, 100, 100); 
       g.fillOval(200, 200, 100, 100); 
     break; 
     case 6: g.fillOval(350, 50, 100, 100); 
       g.fillOval(50, 350, 100, 100); 
       g.fillOval(50, 50, 100, 100); 
       g.fillOval(350, 350, 100, 100); 
       g.fillOval(50, 200, 100, 100); 
       g.fillOval(350, 200, 100, 100); 
     break; 
    } 
} 

回答

2

只是一個成員變量添加到您所使用的Canvas,創建一個setter和調用paint()方法之前設置它:

private int rollValue; 

public void setRollValue(int val) { this.rollValue = val; } 

public void paint(Graphics g) { 
    super.paint(g); 

    switch (rollValue) { 
    ... 
    } 
} 

public void updateVal(int i){ 
    setRollValue(i); 
    repaint(); 
}