加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用drawLine扩展Graphics类(double,double,double,doub

发布时间:2020-12-15 04:17:46 所属栏目:Java 来源:网络整理
导读:问题://故事开始的地方 Graphics类型中的方法drawLine(int,int,int)不适用于参数(double,double,double) g.drawLine((int)10*xi,(int)30*yi,(int)90*xi,(int)30*yi); // where xi is widthScale and yi is heightScale 你可以看到它很蹩脚 实际原型: publi
问题://故事开始的地方
Graphics类型中的方法drawLine(int,int,int)不适用于参数(double,double,double)

g.drawLine((int)10*xi,(int)30*yi,(int)90*xi,(int)30*yi);
// where xi is widthScale and yi is heightScale

你可以看到它很蹩脚

实际原型:
public abstract void drawLine(int x1,int y1,int x2,int y2)
使用当前颜色在此图形上下文的坐标系中的点(x1,y1)和(x2,y2)之间绘制一条线.

我想做什么:

g.drawLine(double x1,double y1,double x2,double y2);

要么

g.drawLine(int x1,int y2,double widthScale,double heightScale);

把我转向正确的方向,踢我的屁股.

解决方法

不需要“扩展”图形,如果你这样做就不会非常有用,因为Swing Graphics引擎无法生成特定类的对象.所以这就引出了一个问题 – 你从哪里获得特定的MyGraphics对象?

相反,我将使用一个形状对象,如Line2D,并使用其Line2D.Double子类型构建它,然后使用Graphics2D对象绘制它.可以通过将Graphics对象转换为此对象来获取Graphics2D对象.大多数Graphics对象都允许这样做,包括用于在JComponents和BufferedImages中绘制图像的对象.有几个地方可能不允许,但我还没有碰到这个.

编辑我想知道你的问题是来自混合视图和模型.对您的问题最好的解决方案可能是让您的模型使用双精度,而视图使用整数来显示模型所拥有的数据.当然,在将数据从模型转换为视图时,您需要进行舍入.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读