已有101人关注
这个地方好像不妥
发表在Java图书答疑 2009-12-13
是否精华
版块置顶:
package awt;

import java.awt.Container;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
import java.awt.geom.Ellipse2D.Double;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class Example extends JFrame {
private Container con;

public Example() {
con = getContentPane();
setSize(200, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
con.add(new Test());

}

public static void main(String[] args) {
new Example();

}

private class Test extends JPanel {
@Override
public void paint(Graphics arg0) {

super.paint(arg0);
Graphics2D graphics2D = (Graphics2D) arg0;
Shape sh[] = new Shape[4];
sh[0] = new Ellipse2D.Double(5, 5, 100, 100);
sh[1] = new Rectangle2D.Double(110, 5, 100, 100);
sh[2] = new Rectangle2D.Double(15, 15, 80, 80);
sh[3] = new Ellipse2D.Double(120, 15, 80, 80);


for (Shape s : sh) {

Rectangle2D bo = s.getBounds();
     //这个地方好像不妥,为什么把值付给Rectangle2D,如果能是否也能付给Ellipse2D,s.getBounds()的值是怎样的一个值?

if (bo.getWidth() == 80) {

graphics2D.fill(s);

} else {

graphics2D.draw(s);



}


}

}
}

}
分享到:
精彩评论 3
无语_mrkj
学分:3155 LV11
2009-12-14
沙发
请问这是哪本书中的程序?
刘子义
学分:0 LV1
2009-12-14
板凳
清华大学出版社, 《Java从入门到精通》
小小邪
学分:0 LV1
2009-12-14
地板
不清楚你说的是哪个实例,书上有个实例是
Rectangle2D bo = s.getBounds2D();

这个getBounds2D();方法的返回值就是Rectangle2D 类型,所以赋值给Rectangle2D 类的对象。
方法主要是用于获取一个矩形区域,返回值不能赋值给Ellipse2D类的对象,它们也没有直接的继承关系。
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照