在这个例子中,我正在尝试创建一个骰子。为此,我想将一个介于1和6之间的随机值从我的updateVal方法传递到我的paint方法,但是我不知道如何将参数传递给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;
}
}
答案 0 :(得分: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();
}