您的位置:首页 > 编程语言 > ASP

在学习ASP.net3.5从入门到精通中遇到问题1

2010-03-29 21:37 274 查看
如果@Provides方法很复杂的话,可以将这些代码移动到单独的类中。这个类需要实现Guice的Provider 接口,该接口定义如下

public interface Provider<T> {
T get();
}


为一个generic 接口。

本例我们定义一个PathProvider,用于返回一个Path对象:

public class PathProvider implements Provider<Path>{

private String pathdata
= "M 60 20 Q -40 70 60 120 Q 160 70 60 20 z";
@Override
public Path get() {
return Path.fromString(pathdata);
}

}


然后在Module中定义从Path类到Provider的绑定:

bind(Path.class).toProvider(PathProvider.class);


然后使用绘制这个Path:

public class ProviderBindingsDemo extends Graphics2DActivity{

@Inject Path path;

protected void drawImage(){

AffineTransform mat1;

// Colors
Color redColor = new Color(0x96ff0000, true);
Color greenColor = new Color(0xff00ff00);
Color blueColor = new Color(0x750000ff, true);

mat1 = new AffineTransform();
mat1.translate(30, 40);
mat1.rotate(-30 * Math.PI / 180.0);

// Clear the canvas with white color.
graphics2D.clear(Color.WHITE);

graphics2D.setAffineTransform(new AffineTransform());
SolidBrush brush = new SolidBrush(greenColor);
graphics2D.fill(brush, path);
graphics2D.setAffineTransform(mat1);

brush = new SolidBrush(blueColor);
com.mapdigit.drawing.Pen pen
= new com.mapdigit.drawing.Pen(redColor, 5);
graphics2D.setPenAndBrush(pen, brush);
graphics2D.draw(null, path);
graphics2D.fill(null, path);

}

}





本例下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: